← Back to topics
Topic

Rectangles

V
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");
}
h
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 ....
h
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.
V
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.
h
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
V
Vidakovic
Vraća mi -1, nznm zašto.

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