Pagini recente » Cod sursa (job #1559821) | Cod sursa (job #2470364) | Cod sursa (job #2964655) | Cod sursa (job #28392) | Cod sursa (job #379832)
Cod sursa(job #379832)
#include<stdio.h>
struct ok
{
long long x1,y1,x2,y2;
} a[4],tr,tr12,tr13,tr23;
long long max (long long x,long long y)
{
if(x<y)
return y;
return x;
}
long long min (long long x,long long y)
{
if(x>y)
return y;
return x;
}
long long arie (ok n)
{
return (n.x2-n.x1)*(n.y2-n.y1);
}
ok intersectie (ok n,ok m)
{
ok nm;
if(max(n.x1,m.x1)<=min(n.x2,m.x2))
{
nm.x1=max(n.x1,m.x1);
nm.x2=min(n.x2,m.x2);
}
else
{
nm.x1=min(n.x1,m.x1);
nm.x2=max(n.x2,m.x2);
}
if(max(n.y1,m.y1)<=min(n.y2,m.y2))
{
nm.y1=max(n.y1,m.y1);
nm.y2=min(n.y2,m.y2);
}
else
{
nm.y1=min(n.y1,m.y1);
nm.y2=max(n.y2,m.y2);
}
return nm;
}
void solve1 ()
{
long long s;
s=arie(a[1])+arie(a[2])+arie(a[3])-arie(tr12)-arie(tr13)-arie(tr23)+arie(tr);
printf("%lld ",s);
}
long long perim (ok n)
{
return 2*(n.x2-n.x1+n.y2-n.y1);
}
void solve2 ()
{
long long s;
s=perim(a[1])+perim(a[2])+perim(a[3])-perim(tr12)-perim(tr13)-perim(tr23)+perim(tr);
printf("%lld",s);
}
int main ()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
for(int i=1;i<=3;++i)
scanf("%lld%lld%lld%lld",&a[i].x1,&a[i].y1,&a[i].x2,&a[i].y2);
tr12=intersectie (a[1],a[2]);
tr13=intersectie (a[1],a[3]);
tr23=intersectie (a[2],a[3]);
tr=intersectie (tr13,a[2]);
solve1();
solve2();
return 0;
}