Pagini recente » Cod sursa (job #2865667) | Cod sursa (job #1590171) | Cod sursa (job #1525780) | Cod sursa (job #1691438) | Cod sursa (job #168669)
Cod sursa(job #168669)
#include<cstdio>
int m(int a,int b)
{
if(a<b) return a;
return b;
}
int M(int a,int b)
{
if(a<b) return b;
return a;
}
class d
{
public:
int x1,x2,y1,y2;
d()
{
x1=x2=y1=y2=0;
}
int arie()
{
return (x2-x1)*(y2-y1);
}
int perimetru()
{
return 2*(x2-x1+y2-y1);
}
d reuniune(d a)
{
d b;
if(x2<a.x1 || a.x2<x1) return b;
if(y2<a.y1 || a.y2<a.y1) return b;
b.x1=M(x1,a.x1);
b.x2=m(x2,b.x2);
b.y1=M(y1,a.y1);
b.y2=m(y2,a.y2);
}
void read()
{
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
}
};
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
d a,b,c;
a.read();
b.read();
c.read();
printf("%d %d",
a.arie()+b.arie()+c.arie()-a.reuniune(b).arie()-b.reuniune(c).arie()-c.reuniune(a).arie()+a.reuniune(b.reuniune(c)).arie(),
a.perimetru()+b.perimetru()+c.perimetru()-a.reuniune(b).perimetru()-b.reuniune(c).perimetru()-c.reuniune(a).perimetru()+a.reuniune(b.reuniune(c)).perimetru());
fclose(stdout);
return 0;
}