Cod sursa(job #2376531)

Utilizator MarutBrabete Marius Stelian Marut Data 8 martie 2019 16:11:39
Problema Reuniune Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.99 kb
#include<cstdio>
#include<algorithm>
using namespace std;
struct drept
{
    int x, y, x1, y1;
};
drept v[5];
int main()
{
    freopen("reuniune.in","r",stdin);
    freopen("reuniune.out","w",stdout);
    int p1x,p1y,p2x,p2y;
    long long r1,r2,r3,r4,arie1,arie2,arie3,per1,per2,per3,p1,p2,p3,p4;
    scanf("%d%d%d%d%d%d%d%d%d%d%d%d",&v[1].x,&v[1].y,&v[1].x1,&v[1].y1,&v[2].x,&v[2].y,&v[2].x1,&v[2].y1,&v[3].x,&v[3].y,&v[3].x1,&v[3].y1);
    p1x=max(v[1].x,v[2].x);
    p1y=max(v[1].y,v[2].y);
    p2x=min(v[1].x1,v[2].x1);
    p2y=min(v[1].y1,v[2].y1);
    r1=(p2x-p1x)*(p2y-p1y);
    p1=2*(p2x-p1x)+2*(p2y-p1y);
    p1x=max(v[1].x,v[3].x);
    p1y=max(v[1].y,v[3].y);
    p2x=min(v[1].x1,v[3].x1);
    p2y=min(v[1].y1,v[3].y1);
    r2=(p2x-p1x)*(p2y-p1y);
    p2=2*(p2x-p1x)+2*(p2y-p1y);
    p1x=max(v[2].x,v[3].x);
    p1y=max(v[2].y,v[3].y);
    p2x=min(v[2].x1,v[3].x1);
    p2y=min(v[2].y1,v[3].y1);
    r3=(p2x-p1x)*(p2y-p1y);
    p3=2*(p2x-p1x)+2*(p2y-p1y);
    p1x=max(v[1].x,max(v[2].x,v[3].x));
    p1y=max(v[1].y,max(v[2].y,v[3].y));
    p2x=min(v[1].x1,min(v[2].x1,v[3].x1));
    p2y=min(v[1].y1,min(v[2].y1,v[3].y1));
    r4=(p2x-p1x)*(p2y-p1y);
    p4=2*(p2x-p1x)+2*(p2y-p1y);
    arie1=(v[1].x1-v[1].x)*(v[1].y1-v[1].y);
    arie2=(v[2].x1-v[2].x)*(v[2].y1-v[2].y);
    arie3=(v[3].x1-v[3].x)*(v[3].y1-v[3].y);
    per1=2*(v[1].x1-v[1].x)+2*(v[1].y1-v[1].y);
    per2=2*(v[2].x1-v[2].x)+2*(v[2].y1-v[2].y);
    per3=2*(v[3].x1-v[3].x)+2*(v[3].y1-v[3].y);
    if(r1<0) r1=0;
    if(r2<0) r2=0;
    if(r3<0) r3=0;
    if(r4<0) r4=0;
    if(p1<0) p1=0;
    if(p2<0) p2=0;
    if(p3<0) p3=0;
    if(p4<0) p4=0;
    long long perimetru;
    unsigned long long rezultat;
    rezultat=1ULL*(arie1+arie2+arie3)-r1-r2-r3+r4;
    //printf("%lld %lld %lld %lld %lld %lld %lld\n",per1,per2,per3,p1,p2,p3,p4);
    perimetru=1LL*(per1+per2+per3)-p1-p2-p3+p4;
    printf("%llu %lld",rezultat,perimetru);
    return 0;
}
/*
rezultat=1ULL*(arie1+arie2+arie3)-r1-r2-r3+r4;
*/