Cod sursa(job #2217771)

Utilizator GiihuoTihufiNeacsu Stefan GiihuoTihufi Data 2 iulie 2018 09:13:36
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("reuniune.in"); ofstream g("reuniune.out");
struct Rect{int x0,x1,y0,y1;} v[4];
uint64_t A, P;
uint64_t ar(Rect r){return 1LL*(r.x1-r.x0)*(r.y1-r.y0);}
uint64_t pe(Rect r){return 2LL*(r.x1+r.y1-r.x0-r.y0);}
Rect inter(Rect r1, Rect r2)
{
    Rect r;
    r.x0=max(r1.x0,r2.x0),r.x1=min(r1.x1, r2.x1);
    r.y0=max(r1.y0,r2.y0),r.y1=min(r1.y1, r2.y1);
    if(r.x0>r.x1||r.y0>r.y1)
        r.x0=r.x1=0,
        r.y0=r.y1=0;
    return r;
}
int main()
{
    for(int i=1;i<=3;i++) f>>v[i].x0>>v[i].y0>>v[i].x1>>v[i].y1;
    A=ar(v[1])+ar(v[2])+ar(v[3])-(ar(inter(v[1],v[2]))+ar(inter(v[1],v[3]))+ar(inter(v[2],v[3])))+ar(inter(inter(v[1],v[2]),v[3]));
    P=pe(v[1])+pe(v[2])+pe(v[3])-(pe(inter(v[1],v[2]))+pe(inter(v[1],v[3]))+pe(inter(v[2],v[3])))+pe(inter(inter(v[1],v[2]),v[3]));
    g<<A<<' '<<P;
    return 0;
}