Cod sursa(job #1264970)

Utilizator cojocarugabiReality cojocarugabi Data 16 noiembrie 2014 15:36:18
Problema Reuniune Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
# include <bits/stdc++.h>
using namespace std;
ifstream fi("reuniune.in");
ofstream fo("reuniune.out");
struct cc{int x,y,z,t;} a[4];
int peri(cc a)
{
    return 2*(a.z - a.x + a.t - a.y);
}
int arie(cc a)
{
    return (a.z - a.x) * (a.t - a.y);
}
cc inter(cc a,cc b)
{
    cc p;
    p.x=max(a.x,b.x);
    p.y=max(a.y,b.y);
    p.z=min(a.z,b.z);
    p.t=min(a.t,b.t);
    if (p.x>p.z || p.y>p.t) p.x=p.y=p.z=p.t=0;
    return p;
}
int main(void)
{
    for (int i=1;i<4;++i) fi>>a[i].x>>a[i].y>>a[i].z>>a[i].t;
    int ans1,ans2;
    ans1=arie(a[1])+arie(a[2])+arie(a[3])-arie(inter(a[1],a[2]))-arie(inter(a[2],a[3]))-arie(inter(a[1],a[3]))+arie(inter(inter(a[1],a[2]),a[3]));
    ans2=peri(a[1])+peri(a[2])+peri(a[3])-peri(inter(a[1],a[2]))-peri(inter(a[2],a[3]))-peri(inter(a[1],a[3]))+peri(inter(inter(a[1],a[2]),a[3]));
    return fo << ans1 << ' ' << ans2 << '\n',0;
}