Pagini recente » Cod sursa (job #3208786) | Cod sursa (job #1874197) | Cod sursa (job #1717914) | Cod sursa (job #1936648) | Cod sursa (job #1404490)
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
int x1,x2,y1,y2;
struct elem
{
long long x1,x2,y1,y2;
}a[5];
long long A,P,xst,xdr,ysus,yjos;
int main ()
{
int i;
for(i=1;i<=3;++i)
{
f>>x1>>y1>>x2>>y2;
a[i].x1=min(x1,x2);
a[i].y1=max(y1,y2);
a[i].x2=max(x1,x2);
a[i].y2=min(y1,y2);
P+=2*(a[i].x2-a[i].x1)+2*(a[i].y1-a[i].y2);
A+=(a[i].x2-a[i].x1)*(a[i].y1-a[i].y2);
}
xst=max(a[1].x1,a[2].x1);
xdr=min(a[1].x2,a[2].x2);
ysus=min(a[1].y1,a[2].y1);
yjos=max(a[1].y2,a[2].y2);
if (xst<=xdr && yjos<=ysus)
{
P=P-2*(xdr-xst)-2*(ysus-yjos);
A=A-(xdr-xst)*(ysus-yjos);
}
xst=max(xst,a[3].x1);
xdr=min(xdr,a[3].x2);
ysus=min(ysus,a[3].y1);
yjos=max(yjos,a[2].y2);
if (xst<=xdr && yjos<=ysus)
{
P=P+2*(xdr-xst)+2*(ysus-yjos);
A=A+(xdr-xst)*(ysus-yjos);
}
xst=max(a[1].x1,a[3].x1);
xdr=min(a[1].x2,a[3].x2);
ysus=min(a[1].y1,a[3].y1);
yjos=max(a[1].y2,a[3].y2);
if (xst<=xdr && yjos<=ysus)
{
P=P-2*(xdr-xst)-2*(ysus-yjos);
A=A-(xdr-xst)*(ysus-yjos);
}
xst=max(a[2].x1,a[3].x1);
xdr=min(a[2].x2,a[3].x2);
ysus=min(a[2].y1,a[3].y1);
yjos=max(a[2].y2,a[3].y2);
if (xst<=xdr && yjos<=ysus)
{
P=P-2*(xdr-xst)-2*(ysus-yjos);
A=A-(xdr-xst)*(ysus-yjos);
}
g<<A<<" "<<P<<"\n";
f.close();
g.close();
return 0;
}