Cod sursa(job #1804630)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 12 noiembrie 2016 20:30:26
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f ("reuniune.in");
ofstream g ("reuniune.out");

struct usu
{
    long long sx,sy,dx,dy;
};

usu intersectie(usu a,usu b)
{
    long long q,w,e,r;
    q=max(a.sx,b.sx);
    w=max(a.sy,b.sy);
    e=min(a.dx,b.dx);
    r=min(a.dy,b.dy);
    if(q>e || w>r)
        q=w=e=r=0;
    usu p;
    p.sx=q;
    p.sy=w;
    p.dx=e;
    p.dy=r;
    return p;
}

long long s(usu a)
{
    return (a.dx-a.sx) * (a.dy-a.sy);
}

long long p(usu a)
{
    return (a.dy-a.sy + a.dx - a.sx )*2;
}
usu a,b,c;
int main()
{
    f>>a.sx>>a.sy>>a.dx>>a.dy;
    f>>b.sx>>b.sy>>b.dx>>b.dy;
    f>>c.sx>>c.sy>>c.dx>>c.dy;
    g<<s(a) + s(b) + s(c) - s(intersectie(a,b)) - s(intersectie(b,c)) - s(intersectie(a,c)) + s(intersectie(a,intersectie(b,c)))<<' ';
    g<<p(a) + p(b) + p(c) - p(intersectie(a,b)) - p(intersectie(b,c)) - p(intersectie(a,c)) + p(intersectie(a,intersectie(b,c)))<<' ';
}