8 / 24
May 2016

@narbej Twoje wskazówki były bezcenne!!! ... faktycznie kod znaaaacznie ograniczyl swoją objętość i jest wkońcu AC .... tamtą wersję pozostawiam w spokoju bo sam jak na ten kod patrze to mi się odechciewa go analizować smile jeszcze raz dziekuję smile

3 years later

Myślę że ten fragment trzeba sprawdzić
"int x1,x2,y1,y2,x3,y3,y4,x4,suma;
cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
suma=pole(x1,y1,x2,y2,x3,y3,x4,y4);
cout< system("PAUSE");"

8 months later

Przechodzi dla każdych moich danych, a i tak jest WA. Ma ktoś jakieś trudne testy?

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int x[5]= {}, y[5]= {}, pier, drug, wspo, a, b;
    cin>>x[1]>>y[1]>>x[2]>>y[2];
    cin>>x[3]>>y[3]>>x[4]>>y[4];
    pier = (x[2]-x[1]) * (y[2]-y[1]);
    drug = (x[4]-x[3]) * (y[4]-y[3]);
    if ((y[1]<y[2]&&y[2]<y[3]&&y[3]<y[4]) || (y[3]<y[4]&&y[4]<y[1]&&y[1]<y[2])) // prostokaty rozlaczone
        b=0;
    else
    {
        sort (y+1, y+5);  // gdy prostokaty zlaczone
        b = y[3]-y[2];
    }
    if ((x[1]<x[2]&&x[2]<x[3]&&x[3]<x[4]) || (x[3]<x[4]&&x[4]<x[1]&&x[1]<x[2]))
        a=0;
    else
    {
        sort (x+1, x+5);
        a = x[3]-x[2];
    }
    wspo = a*b;
    cout << pier+drug-wspo;
    return 0;
}

Pozdrawiam

Dziękuję.
Dalej nie przyjmuje. Widzę że sędzia robi 7 testów. Wszystkie może odrzucać czy wystarczy jeden odrzucony, aby była błędna odpowiedź?

3 months later

Cześć, mam problem. Wydaje mi się, że wszystko jest ok, no ale AC jest nieosiągalne
Z góry dzięki za pomoc :slight_smile:

Wielkie dzięki, tego nie zauważyłem :wink:
Tylko dlaczego autor zadania pisze :"współrzędne odpowiednio lewego-dolnego i prawego-górnego rogu pierwszego prostokąta"?
A i jeszcze jedno pytanie, jaki miał być tam wynik?

Ok, dzięki. Co do programu, to oblicza poprawnie :slight_smile: trzeba było tylko pętlę dodać. A u Ciebie źle policzył, bo dodałeś licznik z przodu

3 years later

Sędzia w tym zadaniu błędnie weryfikuje podesłane kody. Napisałem algorytym i sędzia uznał go jako prawidłowy, a tymczasem sprawdzałem różne przypadki testowe i wiem że mój algorytm zawiera błąd i sędzia go nie wyłapuje.

Czy mam przekleić swój kod ? Autor zadania powienien dodać chyba kilka przypadków testowych.

Podaj kilka przypadków, do których Twój program podaje złe wyniki i oczywiście podaj te wyniki

Dla poniższego zestawu danych:

1 1 5 5 3 1 7 5

prawidłowa odpowiedź powinna wynosić 24 a tymczasem mój algorytm zwraca 16 i sędzia uznaje go jako prawidłowy.

Czy tutaj wkleić mój kod ?

Z kolei inny algorytm wysłany z mojego alternatywnego profilu dla zestawu danych:

1 1 10 10 1 1 15 5

zwraca wynik 81 a powinno być 101 i sędzia również uznaje go jako prawidłowy.

Hmm, mój kod podaje w pierwszym przypadku wynik 24 a w drugim 101.
Pochwal się swoim kodem, tylko najlepiej będzie gdy podasz link do tego kodu na Ideone

Niestety nie posiadam profilu na ideone. Mogę go jedynie wkleić jako zwykły tekst.

Najprawdopodobniej sędzia nie uwzględnia sytuacji gdy współrzędne x jednego prostokąta częściowo pokrywają się z x drugiego prostokąta a y są takie same (pierwszy przypadek) oraz gdy prostokąty częściowo na siebie nachodzą, ale dolne wierzchołki obu prostokątów są takie same (drugi przypadek) .

Założenie profilu na ideone to 3 minuty roboty, ostatecznie podaj go wprost, ale pamiętaj żeby był kompletny i by było zachowane formatowanie ze wszystkimi odstępami i wcięciami. Nikomu nie będzie się chciało czytać niedbale podany kod. Jest tu zresztą opcja na wklejanie kodu. To </>