Pagini recente » Cod sursa (job #2469649) | Cod sursa (job #628295) | Cod sursa (job #3202198) | Cod sursa (job #1557395) | Cod sursa (job #2871831)
#include <bits/stdc++.h>
#pragma GCC optimize ("Ofast")
#define LL long long
using namespace std;
ifstream fin ("reuniune.in");
ofstream fout ("reuniune.out");
struct dreptunghi{
LL i, j;
LL ii, jj;
}a, b, c, ab, bc, ca, abc;
LL area(const dreptunghi& d){
return (long long)(d.ii - d.i) * (d.jj - d.j);
}
LL perimeter(const dreptunghi& d){
return (long long)2 * ((d.ii - d.i) + (d.jj - d.j));
}
dreptunghi intersect(const dreptunghi& x, const dreptunghi& y){
dreptunghi intt = {
max(x.i, y.i), /// i
max(x.j, y.j), /// j
min(x.ii, y.ii), /// ii
min(x.jj, y.jj) /// jj
};
if(intt.i > intt.ii || intt.j > intt.jj)
intt = {0, 0, 0, 0};
return intt;
}
signed main (){
ios_base::sync_with_stdio(false);
fin.tie(nullptr);
fout.tie(nullptr);
fin>>a.i>>a.j>>a.ii>>a.jj;
fin>>b.i>>b.j>>b.ii>>b.jj;
fin>>c.i>>c.j>>c.ii>>c.jj;
ab = intersect(a, b);
bc = intersect(b, c);
ca = intersect(c, a);
abc = intersect(ab, c);
fout<<area(a) + area(b) + area(c) - area(ab) - area(bc) - area(ca) + area(abc)<<" "<<perimeter(a) + perimeter(b) + perimeter(c) - perimeter(ab) - perimeter(bc) - perimeter(ca) + perimeter(abc);
return 0;
}
/**
a + b + c - a*b - b*c - c*a + a*b*c
**/