Cod sursa(job #2375930)

Utilizator MoldovanAndrei1Moldovan Andrei MoldovanAndrei1 Data 8 martie 2019 13:01:01
Problema Reuniune Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <bits/stdc++.h>
using namespace std;
int main()
{
    freopen("reuniune.in","r",stdin);
    freopen("reuniune.out","w",stdout);
    long long  x0,y0,x1,y1;
    long long  x2,y2,x3,y3;
    long long x4,y4,x5,y5;
    long long  sum=0,sum1=0;
    scanf("%lld%lld%lld%lld",&x0,&y0,&x1,&y1);
    sum1+=2*x1-2*x0+2*y1-2*y0;
    scanf("%lld%lld%lld%lld",&x2,&y2,&x3,&y3);
    sum1+=2*x3-2*x2+2*y3-2*y2;
    long long  x6=x2,y6=y2,x7=x3,y7=y3;
    sum+=(x1-x0)*(y1-y0);
    sum+=(x3-x2)*(y3-y2);
    x4=max(x0,x2);

    y4=max(y0,y2);
    x5=min(x1,x3);
    y5=min(y1,y3);
    sum-=(x5-x4)*(y5-y4);
    sum1-=2*x5-2*x4+2*y5-2*y4;
    scanf("%lld%lld%lld%lld\n",&x2,&y2,&x3,&y3);
    sum1+=2*x3-2*x2+2*y3-2*y2;
    sum+=(x3-x2)*(y3-y2);
    x4=max(x4,x2);
    y4=max(y4,y2);
    x5=min(x5,x3);
    y5=min(y5,y3);
        if(x4>x5)
    {
        printf("0 0\n");
        return 0;
    }
    sum1+=2*x5-2*x4+2*y5-2*y4;
    sum+=(x5-x4)*(y5-y4);
    x4=max(x0,x2);
    y4=max(y0,y2);
    x5=min(x1,x3);
    y5=min(y1,y3); sum-=(x5-x4)*(y5-y4);sum1-=2*x5-2*x4+2*y5-2*y4;
        x4=max(x6,x2);
    y4=max(y6,y2);
    x5=min(x7,x3);
    y5=min(y7,y3);
    sum-=(x5-x4)*(y5-y4);sum1-=2*x5-2*x4+2*y5-2*y4;
    printf("%lld %lld\n",sum,sum1);
    return 0;
}