Pagini recente » Cod sursa (job #2901532) | Cod sursa (job #2654545) | Cod sursa (job #2169990) | Cod sursa (job #1748349) | Cod sursa (job #1934824)
#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++){
hmax = max(hmax, v[i].b2);
hmin = min(hmin, v[i].b1);
lmax = max(lmax, v[i].a2);
lmin = min(lmin, v[i].a1);
}
peri = 2 * (hmax-hmin+lmax-lmin);
for(int i = 1; i <= 3; i++) area += (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;
}
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;
out << area << ' ' << peri;
return 0;
}