Pagini recente » Cod sursa (job #669705) | Cod sursa (job #2866654) | Cod sursa (job #1041773) | Cod sursa (job #474104) | Cod sursa (job #1752004)
#include <iostream>
#include <cstdio>
using namespace std;
struct drept
{
long long x0, y0, x1, y1;
};
drept intersect(drept a, drept b)
{
drept c;
c.x0 = max(a.x0, b.x0);
c.x1 = min(a.x1, b.x1);
c.y0 = max(a.y0, b.y0);
c.y1 = min(a.y1, b.y1);
if (c.x1 < c.x0 || c.y1 < c.y0) {
c.x1 = c.x0;
c.y1 = c.y0;
}
return c;
}
long long arie(drept d)
{
return (d.x1 - d.x0) * (d.y1 - d.y0);
}
long long perim(drept d)
{
return 2* ((d.x1 - d.x0) + (d.y1 - d.y0));
}
int main()
{
freopen("reuniune.in", "r", stdin);
freopen("reuniune.out", "w", stdout);
drept d[3];
long long ar = 0, pr = 0;
for (int i = 0; i < 3; i++) {
scanf("%lld %lld %lld %lld", &d[i].x0, &d[i].y0, &d[i].x1, &d[i].y1);
ar += arie(d[i]);
pr += perim(d[i]);
}
ar -= arie(intersect(d[0], d[1]));
ar -= arie(intersect(d[0], d[2]));
ar -= arie(intersect(d[1], d[2]));
ar += arie(intersect(intersect(d[0], d[1]), d[2]));
pr -= perim(intersect(d[0], d[1]));
pr -= perim(intersect(d[0], d[2]));
pr -= perim(intersect(d[1], d[2]));
pr += perim(intersect(intersect(d[0], d[1]), d[2]));
cout << ar << " " << pr;
return 0;
}