Cod sursa(job #2811606)

Utilizator andreibazavanAndrei Bazavan andreibazavan Data 2 decembrie 2021 18:25:12
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct dr{
long long x0,y0;
long long x1,y1;
}v[10];
long long aria(dr a)
{
    return ((a.x1-a.x0)*(a.y1-a.y0));
}
long long peri(dr a)
{
    return (2*((a.x1-a.x0)+(a.y1-a.y0)));
}
dr inter(dr a, dr b)
{
    dr c;
    c.x0=max(a.x0,b.x0);
    c.y0=max(a.y0,b.y0);
    c.x1=min(a.x1,b.x1);
    c.y1=min(a.y1,b.y1);
    if(c.x0>c.x1 || c.y0>c.y1)
    {
       c.x0=0;c.y0=0;
       c.x1=0;c.y1=0;
    }
    return c;
}
int main()
{
    for(int i=1;i<=3;++i)
    fin>>v[i].x0>>v[i].y0>>v[i].x1>>v[i].y1;
    fout<<aria(v[1])+aria(v[2])+aria(v[3])-aria(inter(v[1],v[2]))-aria(inter(v[2],v[3]))-aria(inter(v[1],v[3]))+aria(inter(inter(v[1],v[2]),v[3]))<<' ';
    fout<<peri(v[1])+peri(v[2])+peri(v[3])-peri(inter(v[1],v[2]))-peri(inter(v[2],v[3]))-peri(inter(v[1],v[3]))+peri(inter(inter(v[1],v[2]),v[3]))<<'\n';
    return 0;
}