Pagini recente » Cod sursa (job #3151095) | Cod sursa (job #639378) | Cod sursa (job #2082841) | Cod sursa (job #2805916) | Cod sursa (job #2977805)
#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];
array<P,4> getPts(R r){
return {P{r[0],r[1]},P{r[2],r[3]},P{r[0],r[3]},P{r[2],r[1]}};
}
ll area(R r){
return abs(r[2]-r[0])*abs(r[3]-r[1]);
}
ll peri(R r){
return 2*(abs(r[2]-r[0])+abs(r[3]-r[1]));
}
R rect(P p0,P p1){
return {min(p0[0],p1[0]),min(p0[1],p1[1]),max(p0[0],p1[0]),max(p0[1],p1[1])};
}
void print(R r){
for(int i=0;i<4;i++)
cout << r[i] << ",";
cout << "\n";
}
R overlap(R r1,R r2){
return {
max(r1[0],r2[0]),
max(r1[1],r2[1]),
min(r1[2],r2[2]),
min(r1[3],r2[3])
};
}
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;
}