Pagini recente » Cod sursa (job #1015900) | Cod sursa (job #2385537) | Cod sursa (job #2990409) | Cod sursa (job #823836) | Cod sursa (job #709100)
Cod sursa(job #709100)
#include <cstdio>
#include <algorithm>
using namespace std;
struct dr {
int x1, x2;
int y1, y2;
};
dr d[5];
int inters(int x, int 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(int x)
{
return (d[x].x2 - d[x].x1) * (d[x].y2 - d[x].y1);
}
long long perim(int x)
{
return ((d[x].x2 - d[x].x1) + (d[x].y2 - d[x].y1)) * 2;
}
int main()
{
int i;
freopen ("reuniune.in", "r", stdin);
freopen ("reuniune.out", "w", stdout);
for(i = 1; i <= 3; ++i)
scanf("%d %d %d %d", &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;
}