Cod sursa(job #1972004)

Utilizator MoleRatFuia Mihai MoleRat Data 21 aprilie 2017 14:51:58
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
long long ar,p;
struct drept{
    long long xa,ya,xb,yb;
}a,b,c;
long long arie(drept x){
    return 1LL*(x.xb-x.xa)*(x.yb-x.ya);
}
long long perimetru(drept x){
    return 1LL*((x.xb-x.xa)+(x.yb-x.ya))*2;
}
drept inters(drept x,drept y){
    drept 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()
{
    fin>>a.xa>>a.ya>>a.xb>>a.yb;
    fin>>b.xa>>b.ya>>b.xb>>b.yb;
    fin>>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)));
    fout<<ar<<" "<<p;

}