Cod sursa(job #1779148)

Utilizator MithrilBratu Andrei Mithril Data 14 octombrie 2016 20:56:29
Problema Reuniune Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.76 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
long x0a,y0a,x1a,y1a,x0b,y0b,x1b,y1b,x0c,y0c,x1c,y1c;
long Pab=0,Aab=0,Pbc=0,Abc=0,Pac=0,Aac=0,Pabc=0,Aabc=0;
int main()
{
    fin>>x0a>>y0a>>x1a>>y1a>>x0b>>y0b>>x1b>>y1b>>x0c>>y0c>>x1c>>y1c;
    long x0ab=max(x0a,x0b);
    long y0ab=max(y0a,y0b);
    long x1ab=min(x1a,x1b);
    long y1ab=min(y1a,y1b);

    long x0bc=max(x0c,x0b);
    long y0bc=max(y0c,y0b);
    long x1bc=min(x1c,x1b);
    long y1bc=min(y1c,y1b);

    long x0ac=max(x0c,x0a);
    long y0ac=max(y0c,y0a);
    long x1ac=min(x1c,x1a);
    long y1ac=min(y1c,y1a);

    long x0abc=max(x0a,max(x0b,x0c));
    long x1abc=min(x1a,min(x1b,x1c));
    long y0abc=max(y0a,max(y0b,y0c));
    long y1abc=min(y1a,min(y1b,y1c));

    long Pa=(abs(x1a-x0a)<<1)+(abs(y1a-y0a)<<1);
    long Aa=abs(x1a-x0a)*abs(y1a-y0a);

    long Pb=(abs(x1b-x0b)<<1)+(abs(y1b-y0b)<<1);
    long Ab=abs(x1b-x0b)*abs(y1b-y0b);

    long Pc=(abs(x1c-x0c)<<1)+(abs(y1c-y0c)<<1);
    long Ac=abs(x1c-x0c)*abs(y1c-y0c);


    if(x0ab<=x1ab&&y0ab<=y1ab){
        Pab=(abs(x1ab-x0ab)<<1)+(abs(y1ab-y0ab)<<1);
        Aab=abs(x1ab-x0ab)*abs(y1ab-y0ab);
    }

    if(x0bc<=x1bc&&y0bc<=y1bc){
        Pbc=(abs(x1bc-x0bc)<<1)+(abs(y1bc-y0bc)<<1);
        Abc=abs(x1bc-x0bc)*abs(y1bc-y0bc);
    }

    if(x0ac<=x1ac&&y0ac<=y1ac){
        Pac=(abs(x1ac-x0ac)<<1)+(abs(y1ac-y0ac)<<1);
        Aac=abs(x1ac-x0ac)*abs(y1ac-y0ac);
    }

    if(x0abc<x1abc&&y0abc<=y1abc){
        Pabc=(abs(x1abc-x0abc)<<1)+(abs(y1abc-y0abc)<<1);
        Aabc=abs(x1abc-x0abc)*abs(y1abc-y0abc);
    }
    fout<<Aa+Ab+Ac-Aab-Abc-Aac+Aabc<<' ';
    fout<<Pa+Pb+Pc-Pab-Pbc-Pac+Pabc;
    fin.close();
    fout.close();
    return 0;
}