Pagini recente » Cod sursa (job #596073) | Cod sursa (job #1071830) | Cod sursa (job #2866327) | Cod sursa (job #1170790) | Cod sursa (job #709104)
Cod sursa(job #709104)
#include <cstdio>
#include <algorithm>
using namespace std;
struct dr {
long long x1, x2;
long long y1, y2;
};
dr d[5];
int inters(long long x, long long y)
{
dr a = d[x];
dr b = d[y];
d[4].x1 = max(a.x1, b.x1);
d[4].x2 = min(a.x2, b.x2);
d[4].y1 = max(a.y1, b.y1);
d[4].y2 = min(a.y2, b.y2);
if((d[4].x1 > d[4].x2) || (d[4].y1 > d[4].y2)) {
d[4].x1 = 0;
d[4].x2 = 0;
d[4].y1 = 0;
d[4].y2 = 0;
}
return 4;
}
long long arie(long long x)
{
return 1LL * (d[x].x2 - d[x].x1) * (d[x].y2 - d[x].y1);
}
long long perim(long long x)
{
return ((d[x].x2 - d[x].x1) + (d[x].y2 - d[x].y1)) * 2;
}
int main()
{
long long i;
freopen ("reuniune.in", "r", stdin);
freopen ("reuniune.out", "w", stdout);
for(i = 1; i <= 3; ++i)
scanf("%lld %lld %lld %lld", &d[i].x1, &d[i].y1, &d[i].x2, &d[i].y2);
printf("%lld ", arie(1) + arie(2) + arie(3) - arie(inters(1, 2)) - arie(inters(1, 3)) - arie(inters(2, 3)) + arie(inters(1, inters(2, 3))));
printf("%lld\n", perim(1) + perim(2) + perim(3) - perim(inters(1, 2)) - perim(inters(1, 3)) - perim(inters(2, 3)) + perim(inters(1, inters(2, 3))));
return 0;
}