Cod sursa(job #1901797)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 4 martie 2017 11:17:13
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>

using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dreptunghi
{
    long long a,b,c,d;
}h,v,t,y,o,p,q;
void intersectie(dreptunghi k,dreptunghi r,dreptunghi &h)
{
    h.a=max(k.a,r.a);
    h.b=max(k.b,r.b);
    h.c=min(k.c,r.c);
    h.d=min(k.d,r.d);
    if (h.a>h.c||h.b>h.d)
    {
        h.a=0;
        h.c=0;
        h.b=0;
        h.d=0;
    }
}
long long arie (dreptunghi u)
{
    return ((u.d-u.b)*(u.c-u.a));
}
long long perimetru (dreptunghi u)
{
    return (((u.d-u.b)+(u.c-u.a))*2);
}
long long z,k,sa,sp;
int main()
{
    f>>v.a>>v.b>>v.c>>v.d>>t.a>>t.b>>t.c>>t.d>>y.a>>y.b>>y.c>>y.d;
    intersectie (v,y,h);
    intersectie (v,t,o);
    intersectie (y,t,p);
    intersectie (h,t,q);
    sa=arie(v)+arie(t)+arie(y)-arie(h)-arie(o)-arie(p)+arie(q);
    sp=perimetru(v)+perimetru(t)+perimetru(y)-perimetru(h)-perimetru(o)-perimetru(p)+perimetru(q);
    g<<sa<<" "<<sp;
    return 0;
}