Cod sursa(job #2422693)

Utilizator Nicolae11Mihaila Nicolae Nicolae11 Data 19 mai 2019 17:30:53
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#define ll long long
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct drp {ll x,y,a,b;};
drp d[4];
ll arie(drp v)
{   return (v.a-v.x)*(v.b-v.y);}
ll perim(drp v)
{   return 2*(v.a-v.x+v.b-v.y);}
drp inters(drp u, drp v)
{   drp p;
    p.x=max(u.x,v.x);
    p.y=max(u.y,v.y);
    p.a=min(u.a,v.a);
    p.b=min(u.b,v.b);
    if(p.x>p.a || p.y>p.b) p=(drp){0,0,0,0};
    return p;
}
int main()
{   for(int i=1;i<=3;i++) f>>d[i].x>>d[i].y>>d[i].a>>d[i].b;
    ll s=arie(d[1])+arie(d[2])+arie(d[3])-arie(inters(d[1],d[2]))-arie(inters(d[1],d[3]))-arie(inters(d[2],d[3]))+arie(inters(inters(d[1],d[2]),d[3]));
    ll per=perim(d[1])+perim(d[2])+perim(d[3])-perim(inters(d[1],d[2]))-perim(inters(d[1],d[3]))-perim(inters(d[2],d[3]))+perim(inters(inters(d[1],d[2]),d[3]));
    g<<s<<' '<<per;
    return 0;
}