Cod sursa(job #1511968)

Utilizator Julian.FMI Caluian Iulian Julian. Data 27 octombrie 2015 14:43:31
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");

struct dre
{
    long long x0,y0,x1,y1;
};

dre intersectie(dre a,dre b)
{dre c;
c.x0=max(a.x0,b.x0);
c.x1=min(a.x1,b.x1);
c.y0=max(a.y0,b.y0);
c.y1=min(a.y1,b.y1);
return c;
}

long long ar(dre a)
{
    if(a.x0<=a.x1 && a.y0<=a.y1)
        return ((a.x1-a.x0)*(a.y1-a.y0));
    else return 0;
}

long long per(dre a)
{
    if(a.x0<=a.x1 && a.y0<=a.y1)
        return (2*(a.x1-a.x0)+2*(a.y1-a.y0));
    else return 0;
}


int main()
{long long arie,perimetru;
dre a,b,c;
fin>>a.x0>>a.y0>>a.x1>>a.y1;
fin>>b.x0>>b.y0>>b.x1>>b.y1;
fin>>c.x0>>c.y0>>c.x1>>c.y1;

arie=perimetru=0;
arie=ar(a)+ar(b)+ar(c)-ar(intersectie(a,b))-ar(intersectie(a,c))-ar(intersectie(b,c))
        +ar(intersectie(a,intersectie(b,c)) );
perimetru=per(a)+per(b)+per(c)-per(intersectie(a,b))-per(intersectie(a,c))-per(intersectie(b,c))
        +per(intersectie(a,intersectie(b,c)) );
fout<<arie<<' '<<perimetru;
}