Cod sursa(job #1901840)

Utilizator timihaitaTimaru Mihaita timihaita Data 4 martie 2017 11:32:19
Problema Reuniune Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dreptunghi
{
    long long x1,y1,x2,y2;
}h,v,t,y,o,p,q;
void intersectie(dreptunghi k,dreptunghi r,dreptunghi &h)
{
    h.x1=max(k.x1,r.x1);
    h.y1=max(k.y1,r.y1);
    h.x2=min(k.x2,r.x2);
    h.y2=min(k.y2,r.y2);
    if (h.x1>h.x1||h.y1>h.y2)
    {
        h.x1=0;
        h.y1=0;
        h.x2=0;
        h.y2=0;
    }

}
long long arie (dreptunghi u)
{
    return ((u.y2-u.y1)*(u.x2-u.x1));
}
long long perimetru (dreptunghi u)
{
    return (((u.y2-u.y1)+(u.x2-u.x1))*2);
}
long long z,k,sa,sp;
int main()
{
    f>>v.x1>>v.y1>>v.x2>>v.y2>>t.x1>>t.y1>>t.x2>>t.y2>>y.x1>>y.y1>>y.x2>>y.y2;
    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;
}