Pagini recente » Rating Mihnea Nuconteaza (mihneainfo) | Cod sursa (job #577913) | Cod sursa (job #2251829) | Cod sursa (job #2014215) | Cod sursa (job #1934847)
#include <bits/stdc++.h>
#define ll long long
#define mx INT_MAX
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct my{
ll a1, a2, b1, b2;
};
my v[10]; ll x, y, xx, yy, hmax = -mx, hmin = mx, lmax = -mx, lmin = mx, area, peri;
int main(){
for(int i = 1; i <= 3; i++) in >> v[i].a1 >> v[i].b1 >> v[i].a2 >> v[i].b2;
for(int i = 1; i <= 3; i++){
area += (v[i].a2 - v[i].a1) * (v[i].b2 - v[i].b1);
peri += 2 * (v[i].a2 - v[i].a1 + v[i].b2 - v[i].b1);
}
for(int i = 1; i <= 2; i++)
for(int j = i+1; j <= 3; j++){
xx = yy = 0;
hmax = min(v[i].b2, v[j].b2);
hmin = max(v[i].b1, v[j].b1);
lmax = min(v[i].a2, v[j].a2);
lmin = max(v[i].a1, v[j].a1);
if(lmax >= lmin) xx = lmax - lmin;
if(hmax >= hmin) yy = hmax - hmin;
area -= xx*yy;
peri -= 2*(xx+yy);
}
hmax = mx; hmin = -mx; lmax = mx; lmin = -mx;
for(int i = 1; i <= 3; i++){
hmax = min(hmax, v[i].b2);
hmin = max(hmin, v[i].b1);
lmax = min(lmax, v[i].a2);
lmin = max(lmin, v[i].a1);
}
yy = xx = 0;
if(hmax >= hmin) yy = hmax - hmin;
if(lmax >= lmin) xx = lmax - lmin;
area += xx*yy;
peri += 2*(xx+yy);
out << area << ' ' << peri;
return 0;
}