Cod sursa(job #993167)

Utilizator thewildnathNathan Wildenberg thewildnath Data 3 septembrie 2013 13:59:04
Problema Reuniune Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<stdio.h>

typedef struct punct
{
    int x1,y1,x2,y2;
}punct;
punct a,b,c;

inline int max(int a,int b)
{
    return a>b?a:b;
}

inline int min(int a,int b)
{
    return a<b?a:b;
}

int main()
{
    freopen("reuniune.in","r",stdin);
    freopen("reuniune.out","w",stdout);
    long long l1,l2;
    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);

    a.x2=min(max(a.x1,a.x2),max(b.x1,b.x2));
    a.y2=min(max(a.y1,a.y2),max(b.y1,b.y2));
    a.x1=max(min(a.x1,a.x2),min(b.x1,b.x2));
    a.y1=max(min(a.y1,a.y2),min(b.y1,b.y2));

    a.x2=min(max(a.x1,a.x2),max(c.x1,c.x2));
    a.y2=min(max(a.y1,a.y2),max(c.y1,c.y2));
    a.x1=max(min(a.x1,a.x2),min(c.x1,c.x2));
    a.y1=max(min(a.y1,a.y2),min(c.y1,c.y2));

    l1=max(a.x1,a.x2)-min(a.x1,a.x2);
    l2=max(a.y1,a.y2)-min(a.y1,a.y2);

    printf("%lld %lld\n",l1*l2,(l1+l2)*2);

    return 0;
}