Cod sursa(job #1209357)

Utilizator PopescuMihai95Popescu Mihai PopescuMihai95 Data 17 iulie 2014 15:19:20
Problema Reuniune Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<cstdio>
#include<algorithm>
using namespace std;
long long x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6;
long long L1,l1,L2,l2,L3,l3,a,p,x,y,z,t;
int main()
{
    freopen("reuniune.in","r",stdin);
    freopen("reuniune.out","w",stdout);
    scanf("%lld %lld %lld %lld",&x1,&y1,&x2,&y2);
    scanf("%lld %lld %lld %lld",&x3,&y3,&x4,&y4);
    scanf("%lld %lld %lld %lld",&x5,&y5,&x6,&y6);
    L1=x2-x1; l1=y2-y1;
    L2=x4-x3; l2=y4-y3;
    L3=x6-x5; l3=y6-y5;
    a=L1*l1+L2*l2+l3*L3;
    p=2*(l1+L1+l2+L2+l3+L3);
    x=max(x1,x3); y=max(y1,y3);
    z=min(x2,x4); t=min(y2,y4);
    a=a-((z-x)*(t-y)); p=p-2*(z-x+t-y);
    x=max(x1,x5); y=max(y1,y5);
    z=min(x2,x6); t=min(y2,y6);
    a=a-((z-x)*(t-y)); p=p-2*(z-x+t-y);
    x=max(x3,x5); y=max(y3,y5);
    z=min(x4,x6); t=min(y4,y6);
    a=a-((z-x)*(t-y)); p=p-2*(z-x+t-y);
    x=max(x3,max(x1,x5)); y=max(y3,max(y1,y5));
    z=min(x4,min(x2,x6)); t=min(y4,min(y2,y6));
    a=a+((z-x)*(t-y)); p=p+2*(z-x+t-y);
    printf("%lld %lld",a,p);
    return 0;
}