Cod sursa(job #3298056)

Utilizator Mihai.OnofreiOnofrei Mihai Mihai.Onofrei Data 26 mai 2025 16:08:38
Problema Reuniune Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct drept {int x0,y0,x1,y1;};
drept v[4];
int ar(drept a)
{   return (a.x1-a.x0)*(a.y1-a.y0);}
int per(drept a)
{   return 2*(a.x1-a.x0)+2*(a.y1-a.y0);}
drept inter(drept a, drept b)
{   drept 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 v[0];
    return c;
}
int main()
{   for(int i=1; i<=3; i++) f>>v[i].x0>>v[i].y0>>v[i].x1>>v[i].y1;
    g<<ar(v[1])+ar(v[2])+ar(v[3])-ar(inter(v[1],v[2]))-ar(inter(v[2],v[3]))-ar(inter(v[1],v[3]))+
    ar(inter(inter(v[1],v[2]),v[3]))<<' ';
    g<<per(v[1])+per(v[2])+per(v[3])-per(inter(v[1],v[2]))-per(inter(v[2],v[3]))-per(inter(v[1],v[3]))+
    per(inter(inter(v[1],v[2]),v[3]))<<' ';
    return 0;
}