Cod sursa(job #1369012)

Utilizator andru47Stefanescu Andru andru47 Data 2 martie 2015 21:08:00
Problema Reuniune Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int a[10][10],A[10][10],N,i,j;
long long x1,x2,x3,y1,y2,y3,X1,X2,X3,Y1,Y2,Y3;
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]);
    return ;
}
long long arie(int ind,int a[10][10])
{
    return 1LL*((a[ind][3]-a[ind][1])*(a[ind][4]-a[ind][2]));
}
long long perimetru(int ind,int a[10][10])
{
    return 2LL*((a[ind][3]-a[ind][1])+(a[ind][4]-a[ind][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("%d ",&a[i][j]);
    intersectie(1,2);
    intersectie(1,3);
    intersectie(2,3);
    x1=arie(1,a);
    x2=arie(2,a);
    x3=arie(3,a);
    y1=arie(1,A);
    y2=arie(2,A);
    y3=arie(3,A);
    X1=perimetru(1,a);
    X2=perimetru(2,a);
    X3=perimetru(3,a);
    Y1=perimetru(1,A);
    Y2=perimetru(2,A);
    Y3=perimetru(3,A);
    printf("%lld %lld",x1+x2+x3-y1-y2,X1+X2+X3-Y1-Y2);
    return 0;
}