Cod sursa(job #1496778)

Utilizator ValentinSavoiuFMI Savoiu Valentin-Marian ValentinSavoiu Data 5 octombrie 2015 16:33:13
Problema Reuniune Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#define ll long long
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct drept
{
    int xi,xf,yi,yf;
}a,b,c,ab,ac,bc,abc;
void inters(drept s1,drept s2, drept&s3)
{
    s3.xi=max(s1.xi,s2.xi);
    s3.xf=min(s1.xf,s2.xf);
    s3.yi=max(s1.yi,s2.yi);
    s3.yf=min(s1.yf,s2.yf);
    if(s3.xi>=s3.xf||s3.yi>=s3.yf) s3.xi=s3.xf=s3.yi=s3.yf=0;
}
long long arie (drept s)
{
    return (s.xf-s.xi)*1ll*(s.yf-s.yi);
}
long long per (drept s)
{
    return 2*((s.xf-s.xi)*1ll+(s.yf-s.yi)*1ll);
}
int main()
{
    f>>a.xi>>a.yi>>a.xf>>a.yf;
    f>>b.xi>>b.yi>>b.xf>>b.yf;
    f>>c.xi>>c.yi>>c.xf>>c.yf;
    inters(a,b,ab);
    inters(a,c,ac);
    inters(b,c,bc);
    inters(ab,c,abc);
    g<<arie(a)+arie(b)+arie(c)-arie(ab)-arie(ac)-arie(bc)+arie(abc)<<' ';
    g<<per(a)+per(b)+per(c)-per(ab)-per(ac)-per(bc)+per(abc);
    return 0;
}