Witam,
mecze sie z tym zadaniem, nie wiem juz jaki tutaj jest haczyk : /
Moze ma ktos jakies "podchwytliwe" testy?
moj kod java
kodu nima :P
Pozdrawiam
created
last reply
- 23
replies
- 2.9k
views
- 11
users
- 4
links
Witam,
mecze sie z tym zadaniem, nie wiem juz jaki tutaj jest haczyk : /
Moze ma ktos jakies "podchwytliwe" testy?
moj kod java
kodu nima :P
Pozdrawiam
#include <iostream>
using namespace std;
int pole(int,int,int,int,int,int,int,int);
int main()
{
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<<suma<<endl;
system("PAUSE");
return 0;
}
int pole(int x1, int y1, int x2,int y2,int x3,int y3,int x4,int y4)
{
int a,b,s=0,c,d,e=0;
a=x1;
if(a>x2) a=x2;
if(a>x3) a=x3;
if(a>x4) a=x4;
c=x1;
if(c<x2) c=x2;
if(c<x3) c=x3;
if(c<x4) c=x4;
b=y1;
if(b<y2) b=y2;
if(b<y3) b=y3;
if(b<y4) b=y4;
d=y1;
if(d>y2) d=y2;
if(d>y3) d=y3;
if(d>y4) d=y4;
for(int i=b;i>=d;i--){
cout<<i<<": ";
for(int j=a;j<=c;j++){
if( ((i<=y2 && i>=y1) && (j<=x2 && j>=x1))) || ((i<=y4 && i>=y3) && (j<=x4 && j>=x3)) )
{ s++; cout<<"x";}
else cout<< " ";
e++;
}
cout<<endl;
}
cout<<"y1="<<y1<<" y2="<<y2<<" x1="<<x1<<" x2="<<x2<<" y3="<<y3<<" y4="<<y4<<" x3="<<x3<<" x4="<<x4<<endl;
return s;
}
I wciąż mam błąd xD załamię się nie mogę znaleźć błędu ;/
@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ć jeszcze raz dziekuję
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
Zgadzam się z tobą, że masz problem, i że ci się (jedynie) wydaje
mnie natomiast wydaje się, że za mało możliwości rozważyłeś, sprawdź twój program z innymi danymi63
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.
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.