9 / 9
Jan 2018

Dziękuję.

Co to za domy bezwymiarowe?
Lepsza zabawa byłaby, gdyby długość każdego ogrodzenia wynosiła co najmniej pi.
Co niektórzy na osiedlu nie byliby tak bardzo pokrzywdzeni.

Pozdrawiam

5 years later

Dlaczego odpowiedź dla testu:

1
9
1 2 3 4 5 6 7 8 9

to 10π a nie 9π ?

dla domów o współrzędnych nieparzystych mamy promień = 1, dla domów o współrzędnych parzystych r = 0
co daje łącznie 5 * 2 * pi

Dlaczego niektóre ogrodzenia mogą mieć długość 0 ?, myślałem że każdy okrąg ma mieć przynajmniej π.

Trochę dziwne jeśli ogrodzenie domu bd miało długość 0 :stuck_out_tongue:

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;
}    [