Pagini recente » Cod sursa (job #765023) | Cod sursa (job #598610) | Cod sursa (job #582910) | Cod sursa (job #1641023) | Cod sursa (job #586453)
Cod sursa(job #586453)
#include<iostream>
#include<fstream>
using namespace std;
struct drept {
long long x1,y0,x0,y1;
};
drept a[3];
long long ar,per;
inline long long arie(drept a) {
return (a.x1-a.x0)*(a.y1-a.y0);
}
inline long long peri(drept a) {
return 2*(a.x1-a.x0+a.y1-a.y0);
}
inline drept inte(drept a,drept b) {
drept c;
c.x0=max(a.x0,b.x0);
c.x1=min(a.x1,b.x1);
c.y0=max(a.y0,b.y0);
c.y1=min(a.y1,b.y1);
if(c.x0>c.x1 || c.y0>c.y1) {
c.x1=0; c.x0=0; c.y1=0; c.y0=0;
}
return c;
}
ifstream aa("reuniune.in");
ofstream ss("reuniune.out");
int main() {
int i;
for(i=0;i<=2;++i)
aa >> a[i].x0 >> a[i].y0 >> a[i].x1 >> a[i].y1;
ar=arie(a[0])+arie(a[1])+arie(a[2]);
ar=ar-arie(inte(a[0],a[1]))-arie(inte(a[1],a[2]))-arie(inte(a[0],a[2]));
ar+=arie(inte(inte(a[0],a[1]),a[2]));
per=peri(a[0])+peri(a[1])+peri(a[2]);
per=per-peri(inte(a[0],a[1]))-peri(inte(a[1],a[2]))-peri(inte(a[0],a[2]));
per+=peri(inte(inte(a[0],a[1]),a[2]));
ss << ar << " " << per;
return 0;
}