Cod sursa(job #3322328)

Utilizator jarnea_justinjarnea justin ioan jarnea_justin Data 13 noiembrie 2025 15:20:27
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dreptunghi
{
    int x0,y0,x1,y1;
}d[4];
dreptunghi intersectare(dreptunghi a,dreptunghi b)
{
    dreptunghi 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)
        return c;
    return {0,0,0,0};
}
long long arie(dreptunghi x)
{
    return (x.x1-x.x0)*(x.y1-x.y0);
}
long long perimetru(dreptunghi x)
{
    return 2*(x.x1-x.x0+x.y1-x.y0);
}
signed main()
{
    for(int i=1;i<=3;i++)
        f>>d[i].x0>>d[i].y0>>d[i].x1>>d[i].y1;
    g<<arie(d[1])+arie(d[2])+arie(d[3])-arie(intersectare(d[1],d[2]))-arie(intersectare(d[2],d[3]))-arie(intersectare(d[1],d[3]))+arie(intersectare(intersectare(d[1],d[2]),d[3]))<<" ";
    g<<perimetru(d[1])+perimetru(d[2])+perimetru(d[3])-perimetru(intersectare(d[1],d[2]))-perimetru(intersectare(d[2],d[3]))-perimetru(intersectare(d[1],d[3]))+perimetru(intersectare(intersectare(d[1],d[2]),d[3]));
    return 0;
}