Pagini recente » Cod sursa (job #1523119) | Cod sursa (job #18029) | Cod sursa (job #1837436) | Cod sursa (job #1005022) | Cod sursa (job #1224083)
#include<cstdio>
#include<algorithm>
using namespace std;
struct drept
{
int x1,y1,x2,y2;
}d1,d2,d3;
drept intersectie(drept d1,drept d2)
{
drept di;
di.x1=max(d1.x1,d2.x1);
di.y1=max(d2.y1,d1.y1);
di.x2=min(d1.x2,d2.x2);
di.y2=min(d2.y2,d1.y2);
if(di.y1>di.y2 && di.x2>di.x1 || di.y2<di.y1 && di.x2<di.x1)
{
di.x1=0;
di.x2=0;
di.y1=0;
di.y2=0;
}
return di;
}
long long ar(drept d1)
{
long long a;
a=(long long)(d1.x2-d1.x1)*(d1.y2-d1.y1);
return a;
}
long long p(drept d1)
{
long long p;
p=(long long)((d1.x2-d1.x1)+(d1.y2-d1.y1))*2;
return p;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
long long arie,per;
scanf("%d%d%d%d%d%d%d%d%d%d%d%d",&d1.x1,&d1.y1,&d1.x2,&d1.y2,&d2.x1,&d2.y1,&d2.x2,&d2.y2,&d3.x1,&d3.y1,&d3.x2,&d3.y2);
drept d12,d13,d23,dt;
d12=intersectie(d1,d2);
d13=intersectie(d1,d3);
d23=intersectie(d2,d3);
dt=intersectie(d12,d3);
arie=(long long)(ar(d1)+ar(d2)+ar(d3)-ar(d12)-ar(d13)-ar(d23)+ar(dt));
per=(long long)(p(d1)+p(d2)+p(d3)-p(d12)-p(d13)-p(d23)+p(dt));
printf("%I64d %I64d",arie,per);
return 0;
}