Pagini recente » Cod sursa (job #1001613) | Cod sursa (job #2651120) | Cod sursa (job #2904901) | Cod sursa (job #99324) | Cod sursa (job #2653831)
#include<fstream>
using namespace std;
ifstream f("reuniune.in"); ofstream g("reuniune.out");
typedef long long ll;
struct drept {int x0,y0,x1,y1;} d[4];
ll car(drept p)
{ return 1LL*(p.x1-p.x0)*(p.y1-p.y0);}
ll cper(drept p)
{ return 2LL*(p.x1-p.x0+p.y1-p.y0);}
drept iter(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 d[0];
return c;
}
int main()
{ for(int i=1;i<=3;i++) f>>d[i].x0>>d[i].y0>>d[i].x1>>d[i].y1;
ll arie=car(d[1])+car(d[2])+car(d[3])-car(iter(d[1],d[2]))-car(iter(d[1],d[3]))-car(iter(d[3],d[2]))
+car(iter(iter(d[1],d[2]),d[3]));
ll perimetru=cper(d[1])+cper(d[2])+cper(d[3])-cper(iter(d[1],d[2]))-cper(iter(d[1],d[3]))-cper(iter(d[3],d[2]))
+cper(iter(iter(d[1],d[2]),d[3]));
g<<arie<<' '<<perimetru; g.close(); return 0;
}