Cod sursa(job #2788079)

Utilizator LucaTTiron Luca LucaT Data 24 octombrie 2021 21:18:08
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct pereche
{
    long long a,b,c,d;

};
pereche reuniune(pereche A,pereche B)
{
    pereche C;
    C.a=max(A.a,B.a);
    C.b=max(A.b,B.b);
    C.c=min(A.c,B.c);
    C.d=min(A.d,B.d);
    if(C.a>C.c || C.b>C.d)
    {
        C.a=0;
        C.b=0;
        C.c=0;
        C.d=0;
    }
    return C;
}
long long A(pereche D)
{
    long long rez=0;
    rez=(D.c-D.a)*(D.d-D.b);
    return rez;

}
long long P(pereche D)
{
    long long rez=0;
    rez=2*(D.c-D.a)+2*(D.d-D.b);
    return rez;
}
int main()
{ pereche v[4],D12,D23,D13,D4;

fin>>v[0].a>>v[0].b>>v[0].c>>v[0].d;
fin>>v[1].a>>v[1].b>>v[1].c>>v[1].d;
fin>>v[2].a>>v[2].b>>v[2].c>>v[2].d;
D12=reuniune(v[0],v[1]);
D23=reuniune(v[1],v[2]);
D13=reuniune(v[0],v[2]);
D4=reuniune(D12,v[2]);
fout<<A(v[0])+A(v[1])+A(v[2])-A(D12)-A(D23)-A(D13)+A(D4)<<" "<<P(v[0])+P(v[1])+P(v[2])-P(D12)-P(D23)-P(D13)+P(D4);

    return 0;
}