Cod sursa(job #2387529)

Utilizator andreibazavanAndrei Bazavan andreibazavan Data 24 martie 2019 20:15:03
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct drp{
    long long x,y,a,b;
}d[4];
long long arie(drp A)
{return (A.a-A.x)*(A.b-A.y);}
long long perimetru(drp A)
{return 2*(A.a-A.x+A.b-A.y);}
drp inter(drp A, drp B)
{   drp C,D;
    C.x=max(A.x,B.x);
    C.y=max(A.y,B.y);
    C.a=min(A.a,B.a);
    C.b=min(A.b,B.b);
    if(C.x<=C.a && C.y<=C.b) return C;
    D.x=D.y=D.a=D.b=0;
    return D;
}
int main()
{
    for(int i=1;i<=3;i++)
     fin>>d[i].x>>d[i].y>>d[i].a>>d[i].b;
    fout<<arie(d[1])+arie(d[2])+arie(d[3])-arie(inter(d[1],d[2]))-arie(inter(d[1],d[3]))-arie(inter(d[3],d[2]))+arie(inter(inter(d[1],d[2]),d[3]))<<" ";
    fout<<perimetru(d[1])+perimetru(d[2])+perimetru(d[3])-perimetru(inter(d[1],d[2]))-perimetru(inter(d[1],d[3]))-perimetru(inter(d[3],d[2]))+perimetru(inter(inter(d[1],d[2]),d[3]))<<endl;
    return 0;
}