Cod sursa(job #2665321)

Utilizator metallidethantralayerIon Cojocaru metallidethantralayer Data 30 octombrie 2020 15:49:46
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.52 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");

int64_t ax,ay,ax1,ay1,bx,by,bx1,by1,cx,cy,cx1,cy1;
int64_t AriaTotala(int64_t x,int64_t y,int64_t x1,int64_t y1)
{
    if(x>x1||y>y1)
        return 0;
    return (x1-x)*(y1-y);
}
int64_t PerimetruTotal(int64_t x,int64_t y,int64_t x1,int64_t y1)
{
    if(x>x1||y>y1)
        return 0;
    return 2*(x1-x)+2*(y1-y);
}
int main()
{
    f>>ax>>ay>>ax1>>ay1>>bx>>by>>bx1>>by1>>cx>>cy>>cx1>>cy1;
    int64_t A=AriaTotala(ax,ay,ax1,ay1),A1=PerimetruTotal(ax,ay,ax1,ay1);
    int64_t B=AriaTotala(bx,by,bx1,by1),B1=PerimetruTotal(bx,by,bx1,by1);
    int64_t C=AriaTotala(cx,cy,cx1,cy1),C1=PerimetruTotal(cx,cy,cx1,cy1);
    int64_t A_B=AriaTotala(max(ax,bx),max(ay,by),min(ax1,bx1),min(ay1,by1));
    int64_t A1_B1=PerimetruTotal(max(ax,bx),max(ay,by),min(ax1,bx1),min(ay1,by1));
    int64_t A_C=AriaTotala(max(ax,cx),max(ay,cy),min(ax1,cx1),min(ay1,cy1));
    int64_t A1_C1=PerimetruTotal(max(ax,cx),max(ay,cy),min(ax1,cx1),min(ay1,cy1));
    int64_t B_C=AriaTotala(max(cx,bx),max(cy,by),min(cx1,bx1),min(cy1,by1));
    int64_t B1_C1=PerimetruTotal(max(cx,bx),max(cy,by),min(cx1,bx1),min(cy1,by1));
    int64_t A_B_C=AriaTotala(max(ax,max(cx,bx)),max(ay,max(cy,by)),min(ax1,min(cx1,bx1)),min(ay1,min(cy1,by1)));
    int64_t A1_B1_C1=PerimetruTotal(max(ax,max(cx,bx)),max(ay,max(cy,by)),min(ax1,min(cx1,bx1)),min(ay1,min(cy1,by1)));
    g<<A+B+C-A_B-A_C-B_C+A_B_C<<' '<<A1+B1+C1-A1_B1-A1_C1-B1_C1+A1_B1_C1;

    return 0;
}