Witam
Pomógłby mi ktoś pomóc znaleźć błąd w kodzie ? Program dla testu ze SPOJ’a podaje prawidłowy wynik ale sędzia nie chce zaliczyć go jako poprawny. Zakładam że niektóre obwody mogą mieć pole 0.
Część kodu:
float obwod(vector tab)
{
float r1=0 ;
float r2=0;
float length=0;
float l=0;
for (unsigned int i = 0; i <tab.size(); i++)
{
if(i!=0&&i%2!=0&&i!=tab.size()-1)continue;
if(i==0)
{
r1 = tab.at(i+1)-tab.at(i);
length+=r1*2;
}
else if(i>0&&i!=tab.size()-1)
{
r1 = tab.at(i)-tab.at(i-1);
r2 = tab.at(i+1)-tab.at(i);
if(r1<=r2)
{
length+=r1*2;
if(i==tab.size()-2)l=tab.at(i)+=r1;
}
else
{
length+=r2*2;
if(i==tab.size()-2)l=tab.at(i)+=r2;
}
}
else if (tab.size()>2&&tab.size()%2==0&&i==tab.size()-1)
{
r1 = tab.at(i)-l;
length+=r1*2;
}
else if(tab.size()>2&&tab.size()%2!=0&&i==tab.size()-1)
{
r1=tab.at(i)-tab.at(i-1);
length+=r1*2;
}
}
tab.clear();
return length*3.1415;
} [