Pagini recente » Cod sursa (job #1493668) | Cod sursa (job #911943) | Cod sursa (job #201199) | Istoria paginii utilizator/crisovidiu | Cod sursa (job #1369059)
#include <cstdio>
#include <algorithm>
using namespace std;
long long x1,x2,x3,y11,y2,y3,X1,X2,X3,Y1,Y2,Y3,y4,Y4,a[100][100],A[100][100],N,i,j;
void intersectie(int ind,int ind2)
{
++N;
A[N][1]=max(a[ind][1],a[ind2][1]);
A[N][2]=max(a[ind][2],a[ind2][2]);
A[N][3]=min(a[ind][3],a[ind2][3]);
A[N][4]=min(a[ind][4],a[ind2][4]);
if (A[N][1]>A[N][3]||A[N][2]>A[N][4])
{
A[N][1]=A[N][2]=A[N][3]=A[N][4]=0;
}
return ;
}
long long arie(long long a[100])
{
return 1LL*((a[3]-a[1])*(a[4]-a[2]));
}
long long perimetru(long long a[100])
{
return 2LL*((a[3]-a[1])+(a[4]-a[2]));
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
for (i=1; i<=3; i++)
for (j=1; j<=4; j++)
scanf("%lld ",&a[i][j]);
intersectie(1,2);
intersectie(1,3);
intersectie(2,3);
++N;
A[N][1]=max(A[1][1],a[3][1]);
A[N][2]=max(A[1][2],a[3][2]);
A[N][3]=min(A[1][3],a[3][3]);
A[N][4]=min(A[1][4],a[3][4]);
if (A[N][1]>A[N][3]||A[N][2]>A[N][4])
{
A[N][1]=A[N][2]=A[N][3]=A[N][4]=0;
}
x1=arie(a[1]);
x2=arie(a[2]);
x3=arie(a[3]);
y11=arie(A[1]);
y2=arie(A[2]);
y3=arie(A[3]);
y4=arie(A[4]);
X1=perimetru(a[1]);
X2=perimetru(a[2]);
X3=perimetru(a[3]);
Y1=perimetru(A[1]);
Y2=perimetru(A[2]);
Y3=perimetru(A[3]);
Y4=perimetru(A[4]);
printf("%lld %lld",x1+x2+x3+y4-y11-y2-y3,X1+X2+X3+Y4-Y1-Y2-Y3);
return 0;
}