Cod sursa(job #3322336)

Utilizator BiceaToader David Stefan Bicea Data 13 noiembrie 2025 15:25:39
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct dreptunghi
{
    long long x,y,a,b;
};

long long perimetru(dreptunghi A)
{
    return 2*(abs(A.a-A.x)+abs(A.b-A.y));
}
long long aria(dreptunghi A)
{
    return abs(A.a-A.x)*abs(A.b-A.y);
}
dreptunghi intersectie(dreptunghi A, dreptunghi B)
{
    dreptunghi C;
    C.x=max(A.x,B.x);
    C.a=min(A.a,B.a);
    C.y=max(A.y,B.y);
    C.b=min(A.b,B.b);
    if(C.x<=C.a&&C.y<=C.b) return C;
    C.a=C.b=C.x=C.y=0;
    return C;
}
int main()
{
    dreptunghi A,B,C;
    fin>>A.x>>A.y>>A.a>>A.b;
    fin>>B.x>>B.y>>B.a>>B.b;
    fin>>C.x>>C.y>>C.a>>C.b;
    long long P=perimetru(A)+perimetru(B)+perimetru(C)-perimetru(intersectie(A,B))-perimetru(intersectie(C,B))-perimetru(intersectie(A,C))+perimetru(intersectie(intersectie(A,B),C));
    long long AR=aria(A)+aria(B)+aria(C)-aria(intersectie(A,B))-aria(intersectie(C,B))-aria(intersectie(A,C))+aria(intersectie(intersectie(A,B),C));
    fout<<AR<<' '<<P;
    return 0;
}