Cod sursa(job #2703925)

Utilizator Diana_IonitaIonita Diana Diana_Ionita Data 9 februarie 2021 15:41:11
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 dreapta
{
    long long x,y,l,c;
} d[4];
dreapta inters(dreapta a,dreapta b)
{
    dreapta d;
    d.x=max(a.x,b.x);
    d.y=max(a.y,b.y);
    d.l=min(a.l,b.l);
    d.c=min(a.c,b.c);
    if(d.x>d.l||d.y>d.c) d.x=d.y=d.l=d.c=0;
    return d;

}
long long arie(dreapta a)
{
    return (a.l-a.x)*(a.c-a.y);
}
long long perimetru(dreapta a)
{
    return (a.l-a.x+a.c-a.y)*2;
}
int main()
{int i;
    for(i=1; i<=3; i++)
    {
        fin>>d[i].x>>d[i].y>>d[i].l>>d[i].c;
    }
    long long ar=arie(d[1])+arie(d[2])+arie(d[3])-arie(inters(d[1],d[2]))-arie(inters(d[2],d[3]))-arie(inters(d[1],d[3]))+arie(inters(inters(d[1],d[2]),d[3]));
    fout<<ar<<" ";
    long long per=perimetru(d[1])+perimetru(d[2])+perimetru(d[3])-perimetru(inters(d[1],d[2]))-perimetru(inters(d[2],d[3]))-perimetru(inters(d[1],d[3]))+perimetru(inters(inters(d[1],d[2]),d[3]));
   fout<<per;
    return 0;
}