Cod sursa(job #2938693)

Utilizator PowerPlantNICOLAS ANDREI MANASIA PowerPlant Data 12 noiembrie 2022 14:53:49
Problema Reuniune Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("reuniune.in");
ofstream fout ("reuniune.out");

struct seg{
    long long p,q;
};
struct drept{
    seg x;
    seg y;
};
drept v[5];
seg seg_int(seg a, seg b){
    if(max(a.p,b.p)>min(a.q,b.q))
        return {0,0};
    return {max(a.p,b.p),min(a.q,b.q)};
}

drept drept_int(drept a,drept b)
{
    return {seg_int(a.x,b.x),seg_int(a.y,b.y)};
}

long long A(drept a)
{
    return 1ll*(a.x.q-a.x.p)*(a.y.q-a.y.p);
}

long long P(drept a)
{
    return (a.x.q-a.x.p)*2+(a.y.q-a.y.p)*2;
}

///long long Per()
///{
///    ans+=P(v[1])+P(v[2])+P(v[3])-P(drept_int(v[1]))
///}


///int intersect()


int main()
{
    fin>>v[1].x.p>>v[1].y.p>>v[1].x.q>>v[1].y.q;
    fin>>v[2].x.p>>v[2].y.p>>v[2].x.q>>v[2].y.q;
    fin>>v[3].x.p>>v[3].y.p>>v[3].x.q>>v[3].y.q;

    long long Arie=A(v[1])+A(v[2])+A(v[3])-A(drept_int(v[1],v[2]))-A(drept_int(v[1],v[3]))-A(drept_int(v[2],v[3]))+A(drept_int(v[1],drept_int(v[2],v[3])));
    long long Lungime=P(v[1])+P(v[2])+P(v[3])-P(drept_int(v[1],v[2]))-P(drept_int(v[1],v[3]))-P(drept_int(v[2],v[3]))+P(drept_int(v[1],drept_int(v[2],v[3])));
    fout<<Arie<<" "<<Lungime;
    return 0;
}