Pagini recente » Cod sursa (job #761685) | Cod sursa (job #1995178) | Cod sursa (job #2038648) | Cod sursa (job #195889) | Cod sursa (job #343053)
Cod sursa(job #343053)
#include <stdio.h>
#include <algorithm>
using namespace std;
struct point{
int x,y;
};
struct drept{
point a,b;
};
drept a,b,c,d;
int sum,sum2;
void read(drept &a) {
scanf("%d %d %d %d",&a.a.x,&a.a.y,&a.b.x,&a.b.y);
}
int arie(drept d)
{
if (d.a.x > d.b.x)
return 0;
if (d.a.y > d.b.y)
return 0;
return (d.b.x-d.a.x) * (d.b.y-d.a.y);
}
int per(drept d)
{
if (d.a.x > d.b.x)
return 0;
if (d.a.y > d.b.y)
return 0;
return 2*(d.b.x - d.a.x + d.b.y - d.a.y);
}
void inters(drept &d, drept a, drept b)
{
d.a.x = max(a.a.x, b.a.x);
d.a.y = max(a.a.y, b.a.y);
d.b.x = min(a.b.x, b.b.x);
d.b.y = min(a.b.y, b.b.y);
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
read(a); read(b); read(c);
sum=arie(a)+arie(b)+arie(c);
sum2=per(a)+per(b)+per(c);
inters(d,a,b); sum-=arie(d); sum2-=per(d);
inters(d,a,c); sum-=arie(d); sum2-=per(d);
inters(d,b,c); sum-=arie(d); sum2-=per(d);
inters(d,d,a); sum+=arie(d); sum2+=per(d);
printf("%d %d\n",sum,sum2);
return 0;
}