Pagini recente » Cod sursa (job #3182591) | Cod sursa (job #213698) | Cod sursa (job #96035) | Cod sursa (job #712179) | Cod sursa (job #1045691)
#include <iostream>
#include <fstream>
using namespace std;
struct coord
{
long long x0,y0,x1,y1;
};
int main()
{
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
coord a,b,c,i1,i2,i3,cfin;
long long ai1,ai2,ai3,afin,p1,p2,p3,pfin,a1,a2,a3,pi1,pi2,pi3;
fin>>a.x0>>a.y0>>a.x1>>a.y1;
fin>>b.x0>>b.y0>>b.x1>>b.y1;
fin>>c.x0>>c.y0>>c.x1>>c.y1;
i1.x0=max(a.x0,b.x0);
i1.x1=min(a.x1,b.x1);
i1.y0=max(a.y0,b.y0);
i1.y1=min(a.y1,b.y1);
i2.x0=max(a.x0,c.x0);
i2.x1=min(a.x1,c.x1);
i2.y0=max(a.y0,c.y0);
i2.y1=min(a.y1,c.y1);
i3.x0=max(c.x0,b.x0);
i3.x1=min(c.x1,b.x1);
i3.y0=max(c.y0,b.y0);
i3.y1=min(c.y1,b.y1);
cfin.x0=max(max(a.x0,b.x0),c.x0);
cfin.x1=min(min(a.x1,b.x1),c.x1);
cfin.y0=max(max(a.y0,b.y0),c.y0);
cfin.y1=min(min(a.y1,b.y1),c.y1);
a1=(a.x1-a.x0)*(a.y1-a.y0);
a2=(b.x1-b.x0)*(b.y1-b.y0);
a3=(c.x1-c.x0)*(c.y1-c.y0);
ai1=(i1.x1-i1.x0)*(i1.y1-i1.y0);
ai2=(i2.x1-i2.x0)*(i2.y1-i2.y0);
ai3=(i3.x1-i3.x0)*(i3.y1-i3.y0);
afin=(cfin.x1-cfin.x0)*(cfin.y1-cfin.y0);
if(i1.x0<i1.x1&&i1.y0<i1.y1&&i2.x0<i2.x1&&i2.y0<i2.y1&&i3.x0<i3.x1&&i3.y0<i3.y1&&cfin.x0<cfin.x1&&cfin.y0<cfin.y1)
fout<<a1+a2+a3-ai1-ai2-ai3+afin<<" ";
else
{
fout<<a1+a2+a3;
}
p1=2*(a.x1-a.x0)+2*(a.y1-a.y0);
p2=2*(b.x1-b.x0)+2*(b.y1-b.y0);
p3=2*(c.x1-c.x0)+2*(c.y1-c.y0);
pi1=2*(i1.x1-i1.x0)+2*(i1.y1-i1.y0);
pi2=2*(i2.x1-i2.x0)+2*(i2.y1-i2.y0);
pi3=2*(i3.x1-i3.x0)+2*(i3.y1-i3.y0);
pfin=2*(cfin.x1-cfin.x0)+2*(cfin.y1-cfin.y0);
if(i1.x0<i1.x1&&i1.y0<i1.y1&&i2.x0<i2.x1&&i2.y0<i2.y1&&i3.x0<i3.x1&&i3.y0<i3.y1&&cfin.x0<cfin.x1&&cfin.y0<cfin.y1)
fout<<p1+p2+p3-pi1-pi2-pi3+pfin;
else
if(i1.x0==i1.x1||i1.y0==i1.y1||i2.x0==i2.x1||i2.y0==i2.y1||i3.x0==i3.x1||i3.y0==i3.y1||cfin.x0==cfin.x1||cfin.y0==cfin.y1)
fout<<p1+p2+p3-pi1-pi2-pi3+pfin;
else
fout<<p1+p2+p3;
return 0;
}