Pagini recente » Cod sursa (job #2599816) | Cod sursa (job #3175335) | Cod sursa (job #655237) | Cod sursa (job #2188078) | Cod sursa (job #2977810)
#include <bits/stdc++.h>
using namespace std;
#define ll long long
typedef array<ll,2> P;
typedef array<ll,4> R;
#if 1
#define cin fin
#define cout fout
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
#endif // 0
R rec[3];
ll area(R r){
return (r[2]-r[0])*(r[3]-r[1]);
}
ll peri(R r){
return 2*(abs(r[2]-r[0])+abs(r[3]-r[1]));
}
R overlap(R r1,R r2){
R r = {
max(r1[0],r2[0]),
max(r1[1],r2[1]),
min(r1[2],r2[2]),
min(r1[3],r2[3])
};
if(r[0] > r[2] || r[1] > r[3])
return {0,0,0,0};
return r;
}
int main(){
for(int i=0;i<3;i++){
cin >> rec[i][0] >> rec[i][1] >> rec[i][2] >> rec[i][3];
}
R r01 = overlap(rec[0],rec[1]), r12 = overlap(rec[1],rec[2]), r02 = overlap(rec[2],rec[0]);
R r012 = overlap(r01,rec[2]);
ll ta = area(rec[0]) + area(rec[1]) + area(rec[2]) - area(r01) - area(r12) - area(r02) + area(r012);
ll tp = peri(rec[0]) + peri(rec[1]) + peri(rec[2]) - peri(r01) - peri(r12) - peri(r02) + peri(r012);
cout << ta << " " << tp;
}