Cod sursa(job #1496796)

Utilizator bogdan.balanBogdan Balan bogdan.balan Data 5 octombrie 2015 17:05:01
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
typedef struct { int x1,y1,x2,y2; }D;
long long d,p;
D a,b,c,x,y,z,t;
long long A(D a) { return 1LL*(a.x2-a.x1)*(a.y2-a.y1); }
long long P(D a) { return 2LL*(a.x2-a.x1+a.y2-a.y1); }
D R(D a,D b) {
    D n;
    n.x1=a.x1<b.x1?b.x1:a.x1,n.x2=a.x2<b.x2?a.x2:b.x2,n.y1=a.y1<b.y1?b.y1:a.y1,n.y2=a.y2<b.y2?a.y2:b.y2;
    if(n.x1>n.x2||n.y1>n.y2)
        n.x1=n.y1=n.x2=n.y2=0;
    return n;
}
int main() {
    freopen("reuniune.in","r",stdin),freopen("reuniune.out","w",stdout),scanf("%d%d%d%d",&a.x1,&a.y1,&a.x2,&a.y2),
    scanf("%d%d%d%d",&b.x1,&b.y1,&b.x2,&b.y2),scanf("%d%d%d%d",&c.x1,&c.y1,&c.x2,&c.y2),x=R(a,b),y=R(a,c),z=R(b,c),t=R(x,c);
    d=A(a)+A(b)+A(c)-A(x)-A(y)-A(z)+A(t),p=P(a)+P(b)+P(c)-P(x)-P(y)-P(z)+P(t),printf("%lld %lld",d,p);
}