Pagini recente » Cod sursa (job #1267005) | Cod sursa (job #1313519) | Cod sursa (job #1957487) | Cod sursa (job #624070) | Cod sursa (job #1930292)
#include <bits/stdc++.h>
#define mx INT_MAX
#define ll long long
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct my{
ll m1, m2, n1, n2;
};
my a[5]; ll v1 = mx, v2 = -mx, o1 = mx, o2 = -mx, m, n, rs, ans;
int main(){
for(int i = 1; i <= 3; i++) in >> a[i].m1 >> a[i].n1 >> a[i].m2 >> a[i].n2;
for(int i = 1; i <= 3; i++){
v1 = min(v1, a[i].n1);
v2 = max(v2, a[i].n2);
o1 = min(o1, a[i].m1);
o2 = max(o2, a[i].m2);
}
ans = 2*(v2+o2-v1-o1);
for(int i = 1; i <= 3; i++) rs += (a[i].m2-a[i].m1) * (a[i].n2-a[i].n1);
for(int i = 1; i < 3; i++)
for(int j = i+1; j <= 3; j++){
v1 = max(a[i].n1, a[j].n1);
v2 = min(a[i].n2, a[j].n2);
o1 = max(a[i].n1, a[j].n1);
o2 = min(a[i].n2, a[j].n2);
rs -= (v2-v1) * (o2-o1);
}
ll v1 = -mx, v2 = mx, o1 = -mx, o2 = mx;
for(int i = 1; i <= 3; i++){
v1 = max(v1, a[i].n1);
v2 = min(v2, a[i].n2);
o1 = max(o1, a[i].m1);
o2 = min(o2, a[i].m2);
}
if(v2 > v1) m = v2-v1;
if(o2 > o1) n = o2-o1;
out << rs+m*n << ' ' << ans;
return 0;
}