Cod sursa(job #3328338)

Utilizator WiseAndrei4Vetrila Andrei WiseAndrei4 Data 7 decembrie 2025 20:27:34
Problema Reuniune Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define ll long long
// #define gout cout
// #define fin cin
using namespace std;
ifstream fin("reuniune.in");
ofstream gout("reuniune.out");
struct dreptunghi
{
    int x1,x2,y1,y2;
} d1,d2,d3;
inline int per(dreptunghi d)
{
    if(d.x1>d.x2||d.y1>d.y2)return 0;
    return 2*abs(d.x1-d.x2)+abs(d.y1-d.y2)*2;
}
inline int arie(dreptunghi d)
{
    if(d.x1>d.x2||d.y1>d.y2)return 0;
    return abs(d.x1-d.x2)*abs(d.y1-d.y2);
}
dreptunghi inter(dreptunghi a,dreptunghi b)
{
    static dreptunghi r;
    r.x1=max(a.x1,b.x1);
    r.x2=min(a.x2,b.x2);
    r.y1=max(a.y1,b.y1);
    r.y2=min(a.y2,b.y2);
    return r;
}
int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(0);
    gout.tie(0);
    fin>>d1.x1>>d1.y1>>d1.x2>>d1.y2
       >>d2.x1>>d2.y1>>d2.x2>>d2.y2
       >>d3.x1>>d3.y1>>d3.x2>>d3.y2;
    ///arie
    gout<<arie(d1)+arie(d2)+arie(d3)-arie(inter(d1,d2))-arie(inter(d1,d3))-arie(inter(d2,d3))
        +arie(inter(d1,inter(d2,d3)))<<' ';
    ///perimetru
    gout<<per(d1)+per(d2)+per(d3)-per(inter(d1,d2))-per(inter(d1,d3))-per(inter(d2,d3))
        +per(inter(d1,inter(d2,d3)));
    return 0;
}