Pagini recente » Cod sursa (job #2950142) | Cod sursa (job #1713691) | Cod sursa (job #1735925) | Cod sursa (job #1960855) | Cod sursa (job #2970827)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct rectangle
{
long long ok,left,bottom,right,top;
}v[4];
long long i,j,p,a;
long long perimetru(rectangle x)
{
return 2*((x.right-x.left)+(x.top-x.bottom));
}
long long arie(rectangle x)
{
return (x.right-x.left)*(x.top-x.bottom);
}
rectangle rect(rectangle x,rectangle y)
{
if(x.right<=y.left || x.left>=y.right)
return {-1,0,0,0,0};
if(x.top<=y.bottom || x.bottom>=y.top)
return {-1,0,0,0,0};
return {1,max(x.left,y.left),max(x.bottom,y.bottom),min(x.right,y.right),min(x.top,y.top)};
}
signed main()
{
for(i=1;i<=3;i++)
{
fin>>v[i].bottom>>v[i].left>>v[i].top>>v[i].right;
v[i].ok=1;
p=p+perimetru(v[i]);
a=a+arie(v[i]);
}
for(i=1;i<=2;i++)
for(j=i+1;j<=3;j++)
{
if(rect(v[i],v[j]).ok==-1)
continue;
p=p-perimetru(rect(v[i],v[j]));
a=a-arie(rect(v[i],v[j]));
}
if(rect(rect(v[1],v[2]),v[3]).ok!=-1)
{
p=p+perimetru(rect(rect(v[1],v[2]),v[3]));
a=a+arie(rect(rect(v[1],v[2]),v[3]));
}
fout<<a<<" "<<p<<'\n';
return 0;
}