Pagini recente » Cod sursa (job #322036) | Cod sursa (job #520259) | Cautari ortogonale | Cod sursa (job #102326) | Cod sursa (job #1065800)
#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);
if(i1.x1-i1.x0>0&&i1.y1-i1.y0>0)
ai1=(i1.x1-i1.x0)*(i1.y1-i1.y0);
else
ai1=0;
if(i2.x1-i2.x0>0&&i2.y1-i2.y0>0)
ai2=(i2.x1-i2.x0)*(i2.y1-i2.y0);
else
ai2=0;
if(i3.x1-i3.x0>0&&i3.y1-i3.y0>0)
ai3=(i3.x1-i3.x0)*(i3.y1-i3.y0);
else
ai3=0;
if(cfin.x1-cfin.x0>0&&cfin.y1-cfin.y0>0)
afin=(cfin.x1-cfin.x0)*(cfin.y1-cfin.y0);
else
afin=0;
if(ai1<0)
ai1=0;
if(ai2<0)
ai2=0;
if(ai3<0)
ai3=0;
if(afin<0)
afin=0;
fout<<a1+a2+a3-ai1-ai2-ai3+afin<<" ";
if(a.x1-a.x0!=0&&a.y1-a.y0!=0)
p1=2*(a.x1-a.x0)+2*(a.y1-a.y0);
else
p1=(a.x1-a.x0)+(a.y1-a.y0);
if((b.x1-b.x0)!=0&&(b.y1-b.y0)!=0)
p2=2*(b.x1-b.x0)+2*(b.y1-b.y0);
else
p2=(b.x1-b.x0)+(b.y1-b.y0);
if((c.x1-c.x0)!=0&&(c.y1-c.y0)!=0)
p3=2*(c.x1-c.x0)+2*(c.y1-c.y0);
else
p3=(c.x1-c.x0)+(c.y1-c.y0);
if((i1.x1-i1.x0)!=0&&(i1.y1-i1.y0)!=0)
pi1=2*(i1.x1-i1.x0)+2*(i1.y1-i1.y0);
else
pi1=(i1.x1-i1.x0)+(i1.y1-i1.y0);
if((i2.x1-i2.x0)!=0&&(i2.y1-i2.y0)!=0)
pi2=2*(i2.x1-i2.x0)+2*(i2.y1-i2.y0);
else
pi2=(i2.x1-i2.x0)+(i2.y1-i2.y0);
if((i3.x1-i3.x0)!=0&&(i3.y1-i3.y0)!=0)
pi3=2*(i3.x1-i3.x0)+2*(i3.y1-i3.y0);
else
pi3=(i3.x1-i3.x0)+(i3.y1-i3.y0);
if((cfin.x1-cfin.x0)!=0&&(cfin.y1-cfin.y0)!=0)
pfin=2*(cfin.x1-cfin.x0)+2*(cfin.y1-cfin.y0);
else
pfin=(cfin.x1-cfin.x0)+(cfin.y1-cfin.y0);
if(pi1<0)
pi1=0;
if(pi2<0)
pi2=0;
if(pi3<0)
pi3=0;
if(pfin<0)
pfin=0;
fout<<p1+p2+p3-pi1-pi2-pi3+pfin;
}