Cod sursa(job #1199474)

Utilizator gbibBacotiu Gabi gbib Data 19 iunie 2014 15:20:35
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct dreptunghi{long long x; long long y; long long a; long long b;};
dreptunghi d[3];

long long arie(dreptunghi d)
{
    return (d.a-d.x)*(d.b-d.y);
}

long long perim(dreptunghi d)
{
    return 2*(d.a-d.x)+2*(d.b-d.y);
}

dreptunghi inters(dreptunghi aa, dreptunghi bb)
{
    dreptunghi nou;

    nou.x=max(aa.x,bb.x);
    nou.y=max(aa.y,bb.y);
    nou.a=min(aa.a,bb.a);
    nou.b=min(aa.b,bb.b);

    if ((nou.x>nou.a)||(nou.y>nou.b))
    {
        nou.x=0;
        nou.y=0;
        nou.a=0;
        nou.b=0;
    }
    return nou;
}
int main()
{long long i,atot,ptot;
for(i=0;i<3;++i)
in>>d[i].x>>d[i].y>>d[i].a>>d[i].b;
atot=arie(d[0])+arie(d[1])+arie(d[2])-arie(inters(d[0],d[1]))-arie(inters(d[0],d[2]))-arie(inters(d[1],d[2]))+arie(inters(inters(d[0],d[1]),d[2]));
ptot=perim(d[0])+perim(d[1])+perim(d[2])-perim(inters(d[0],d[1]))-perim(inters(d[0],d[2]))-perim(inters(d[1],d[2]))+perim(inters(inters(d[0],d[1]),d[2]));
out<<atot<<" "<<ptot<<'\n';
    return 0;
}