Pagini recente » Cod sursa (job #1124699) | Cod sursa (job #2721007) | Cod sursa (job #2598760) | Cod sursa (job #2922567) | Cod sursa (job #1225389)
#include<cstdio>
#include<algorithm>
using namespace std;
struct drept
{
int x1,y1,x2,y2;
}d1,d2,d3;
drept intersectie(drept d1,drept d2)
{
drept dr;
dr.x1=max(d1.x1,d2.x1);
dr.y1=max(d1.y1,d2.y1);
dr.x2=min(d1.x2,d2.x2);
dr.y2=min(d1.y2,d2.y2);
if (dr.x1>dr.x2 || dr.y1>dr.y2)
dr.x1=dr.x2=dr.y1=dr.y2=0;
return dr;
}
long long arie(drept d)
{
long long a=0;
a=((long long)d.x2-d.x1)*(d.y2-d.y1);
return a;
}
int perimetru(drept d)
{
int p=0;
p=(d.x2-d.x1)*2+(d.y2-d.y1)*2;
return p;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
long long a=0,p=0;
drept d;
scanf("%d%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);
a=arie(d1)+arie(d2)+arie(d3);
p=perimetru(d1)+perimetru(d2)+perimetru(d3);
a=a-arie(intersectie(d1,d2))-arie(intersectie(d1,d3))-arie(intersectie(d2,d3));
p=p-perimetru(intersectie(d1,d2))-perimetru(intersectie(d1,d3))-perimetru(intersectie(d2,d3));
d=intersectie(d1,d2);
d=intersectie(d,d3);
a=a+arie(d);
p=p+perimetru(d);
printf("%lld %lld\n",a,p);
return 0;
}