Cod sursa(job #726126)

Utilizator bacilaBacila Emilian bacila Data 27 martie 2012 00:47:48
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
using namespace std;
struct dr {long long x1,x2,y1,y2;
       }d[10];
inline int inr(int x,int y){
dr a=d[x], b=d[y];
d[4].x1 = max(a.x1, b.x1);
    d[4].x2 = min(a.x2, b.x2);
    d[4].y1 = max(a.y1, b.y1);
    d[4].y2 = min(a.y2, b.y2);
    if((d[4].x1 > d[4].x2) || (d[4].y1 > d[4].y2)) {
        d[4].x1 = 0;
        d[4].x2 = 0;
        d[4].y1 = 0;
        d[4].y2 = 0;
    }
    return 4;
}
inline long long arie(int x)
{return 1LL*(d[x].x2-d[x].x1)*(d[x].y2-d[x].y1);
}
inline long long perim(int x)
{return 2LL*(d[x].x2-d[x].x1+d[x].y2-d[x].y1);
}
int main ()
{ifstream f("reuniune.in");
 ofstream g("reuniune.out");
f>>d[1].x1>>d[1].y1>>d[1].x2>>d[1].y2;
f>>d[2].x1>>d[2].y1>>d[2].x2>>d[2].y2;
f>>d[3].x1>>d[3].y1>>d[3].x2>>d[3].y2;
g<<arie(1)+arie(2)+arie(3)-arie(inr(1,2))-arie(inr(1,3))-arie(inr(2,3))+arie(inr(1,inr(2,3)))<<" ";
g<<perim(1)+perim(2)+perim(3)-perim(inr(1,2))-perim(inr(1,3))-perim(inr(2,3))+perim(inr(1,inr(3,2)))<<" ";
 f.close(); g.close();
return 0;
}