Pagini recente » Cod sursa (job #2560203) | Cod sursa (job #1412242) | Cod sursa (job #193198) | Cod sursa (job #2523585) | Cod sursa (job #2406562)
/// reuniune
#include <bits/stdc++.h>
using namespace std;
struct Drept {
int x1;
int x2;
int y1;
int y2;
};
Drept a[4];
using ll = long long;
Drept inter (Drept a, Drept b) {
Drept c;
c.x1 = max (a.x1, b.x1);
c.y1 = max (a.y1, b.y1);
c.x2 = min (a.x2, b.x2);
c.y2 = min (a.y2, b.y2);
if (c.x1 > c.x2)
c.x1 = c.x2;
if (c.y1 > c.y2)
c.y1 = c.y2;
return c;
}
ll arie (Drept a) {
return 1LL * (a.x2 - a.x1) * (a.y2 - a.y1);
}
ll per (Drept a) {
return 2LL * (1LL * (a.x2 - a.x1) + 1LL * (a.y2 - a.y1));
}
int main() {
ll sol1, sol2;
freopen ("reuniune.in", "r", stdin);
freopen ("reuniune.out", "w", stdout);
{1}
scanf ("%d%d%d%d", &a[1].x1, &a[1].y1, &a[1].x2, &a[1].y2);
scanf ("%d%d%d%d", &a[2].x1, &a[2].y1, &a[2].x2, &a[2].y2);
scanf ("%d%d%d%d", &a[3].x1, &a[3].y1, &a[3].x2, &a[3].y2);
{1}
sol1 = sol2 = 0;
{1}
sol1 += arie (a[1]);
sol2 += per (a[1]);
sol1 += arie (a[2]);
sol2 += per (a[2]);
sol1 += arie (a[3]);
sol2 += per (a[3]);
{1}
sol1 -= arie (inter (a[1], a[2]));
sol2 -= per (inter (a[1], a[2]));
sol1 -= arie (inter (a[3], a[2]));
sol2 -= per (inter (a[3], a[2]));
sol1 -= arie (inter (a[1], a[3]));
sol2 -= per (inter (a[1], a[3]));
{1}
sol1 += arie (inter (a[1], inter (a[2], a[3])));
sol2 += per (inter (a[1], inter (a[2], a[3])));
{1}
printf ("%lld %lld\n", sol1, sol2);
return 0;
}