← Back to topics
Topic

Rectangles

Vidakovic
Padam samo 18. primjer - Wrong Result.

Jel mogu dobiti taj primjer, ili neka neko pogleda kod:

// task: Rectangles
// Dragan Vidakovic 22.01.2012. u 00:05

# include <iostream>
# include <cstdio>
# include <algorithm>
using namespace std;

long long n,i,iks1,ips1,iks2,ips2,mx1=0,my1=0,mx2=100001,my2=100001;
long long pov=0;
bool pre=false;

int main ()
{
cin>>n;

for (i=0; i<n; i++)
{
scanf("%lld%lld%lld%lld",&iks1,&ips1,&iks2,&ips2);

if ( i > 0 && iks1>mx1 && iks2>my1 && iks2>mx2 && ips2 > my2) pre=true;

mx1=max(iks1,mx1);
my1=max(ips1,my1);
mx2=min(iks2,mx2);
my2=min(ips2,my2);
}


pov=(mx2-mx1)*(my2-my1);

if (!pre) printf("%lld",pov);
else printf("0");

//system("pause");
}
halil
Ideja je ok. Nije mi sasvim jasan onaj red if ( i > 0 ...
Mozda je bolje bez tog reda, a pri kraju proveriti da li je pov < 0 ....
halil
Izbegavaj postavljanje gotovih programa na forumu. Dovoljan je link na tvoj post taska. Ko ga je uradio, može pogledati i tvoj link, i pomoći ako treba. Ko nije uradio taj task, teško ti može pomoći.
Vidakovic
Taj red predstavlja kada se ne seku prvavougaonici, da se preskoči.

Meni pada primjer na kome ima pravougaonika koji se ne seku, al rešenje nije 0.
halil
Aha. Onda je u tom redu greska, Jedno od iks2 trebalo bi da bude ips1. Probaj:
2
1 1 5 3
4 4 5 5
Vidakovic
Vraća mi -1, nznm zašto.

Prolazi mi 18/20, tj. padaju mi 2 primjera na kojima je rešenje 0.
halil
U redu if... dva puta imaš iks2. Dobro pogledaj taj red.
halil
Probaj ovo :
2
1 3 6 5
7 2 8 4
U onom if-u ne treba svugde &&. Razmisli o '||'.
Vidakovic
Skontao sam poentu, razmisliću, pa ću to kasnije implementirati