Cod sursa(job #1956960)

Utilizator mariastStoichitescu Maria mariast Data 7 aprilie 2017 10:33:30
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f ("reuniune.in");
ofstream g ("reuniune.out");
long long ar,p;
struct dreptunghi{
    long long xa,ya,xb,yb;
}a,b,c;
long long arie(dreptunghi x){
    return 1LL*(x.xb-x.xa)*(x.yb-x.ya);
}
long long perimetru(dreptunghi x){
    return 1LL*((x.xb-x.xa)+(x.yb-x.ya))*2;
}
dreptunghi inters(dreptunghi x,dreptunghi y){
    dreptunghi z;
    z.xa=max(x.xa,y.xa);
    z.ya=max(x.ya,y.ya);
    z.xb=min(x.xb,y.xb);
    z.yb=min(x.yb,y.yb);
    if(z.xb<z.xa||z.yb<z.ya)z.xa=0,z.ya=0,z.xb=0,z.yb=0;
    return z;
}
int main()
{
    f>>a.xa>>a.ya>>a.xb>>a.yb;
    f>>b.xa>>b.ya>>b.xb>>b.yb;
    f>>c.xa>>c.ya>>c.xb>>c.yb;
    ar=arie(a)+arie(b)+arie(c)-arie(inters(a,b))-arie(inters(c,b))-arie(inters(a,c))+arie(inters(c,inters(a,b)));
    p=perimetru(a)+perimetru(b)+perimetru(c)-perimetru(inters(a,b))-perimetru(inters(c,b))-perimetru(inters(a,c))+perimetru(inters(c,inters(a,b)));
    g<<ar<<" "<<p;

}