Pagini recente » Ședință 2010-02-16 | Cod sursa (job #3298056)
#include <bits/stdc++.h>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct drept {int x0,y0,x1,y1;};
drept v[4];
int ar(drept a)
{ return (a.x1-a.x0)*(a.y1-a.y0);}
int per(drept a)
{ return 2*(a.x1-a.x0)+2*(a.y1-a.y0);}
drept inter(drept a, drept b)
{ drept c;
c.x0=max(a.x0,b.x0);
c.y0=max(a.y0,b.y0);
c.x1=min(a.x1,b.x1);
c.y1=min(a.y1,b.y1);
if(c.x0>c.x1 || c.y0>c.y1) return v[0];
return c;
}
int main()
{ for(int i=1; i<=3; i++) f>>v[i].x0>>v[i].y0>>v[i].x1>>v[i].y1;
g<<ar(v[1])+ar(v[2])+ar(v[3])-ar(inter(v[1],v[2]))-ar(inter(v[2],v[3]))-ar(inter(v[1],v[3]))+
ar(inter(inter(v[1],v[2]),v[3]))<<' ';
g<<per(v[1])+per(v[2])+per(v[3])-per(inter(v[1],v[2]))-per(inter(v[2],v[3]))-per(inter(v[1],v[3]))+
per(inter(inter(v[1],v[2]),v[3]))<<' ';
return 0;
}