Cod sursa(job #1348353)

Utilizator ade_tomiEnache Adelina ade_tomi Data 19 februarie 2015 17:34:51
Problema Reuniune Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<stdio.h>
struct str
{

    int x1,x2,y1,y2;
};
str v[5],axb,axc,bxc,axbxc;
int min(int a,int b)
{

    if(a>b)
        return b;
    return a ;
}
int max(int a,int b)
{

    if(a>b)
        return a;
    return b;
}
str reuniune(str a, str b)
{
    str r;
    r.x1=max(a.x1,b.x1);
    r.y1=max(a.y1,b.y1);
    r.x2=min(a.x2,b.x2);
    r.y2=min(a.y2,b.y2);
    return r;
}
long long arie(str a)
{
    return (long long)(a.x2-a.x1)*(a.y2-a.y1);
}
long long perim(str a)
{
    return (long long)(a.x2-a.x1)*2+(long long ) 2*(a.y2-a.y1);

}
int main()
{

    freopen("reuniune.in","r",stdin);
    freopen("reuniune.out","w",stdout);
    for(int i=1;i<=3;i++)
        scanf("%d%d%d%d",&v[i].x1,&v[i].y1,&v[i].x2,&v[i].y2);
    axb=reuniune(v[1],v[2]);
    axc=reuniune(v[1],v[3]);
    bxc=reuniune(v[2],v[3]);
    axbxc=reuniune(axb,v[3]);
    printf("%lld ",arie(v[1])+arie(v[2])+arie(v[3])-arie(axb)-arie(axc)-arie(bxc)+arie(axbxc));
    printf("%lld ",perim(v[1])+perim(v[2])+perim(v[3])-perim(axb)-perim(axc)-perim(bxc)+perim(axbxc));

    return 0;

}