Cod sursa(job #1087695)

Utilizator EpictetStamatin Cristian Epictet Data 19 ianuarie 2014 19:15:33
Problema Reuniune Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <fstream>
#define LL long long
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long L1,C1,L2,C2,L3,C3,L11,C11,L22,C22,L33,C33;

long long aria(LL x1,LL y1,LL x2,LL y2)
{
    return (x2-x1)*(y2-y1);
}

long long perimetru(LL x1,LL y1,LL x2,LL y2)
{
    return 2*(x2-x1)+2*(y2-y1);
}

int main()
{

    f >> L1 >> C1 >> L11 >> C11;
    f >> L2 >> C2 >> L22 >> C22;
    f >> L3 >> C3 >> L33 >> C33;

    long long i1x = max(L1, L2);
    long long i2x = max(L2, L3);
    long long i3x = max(L1, L3);

    long long i1xx = min(L11, L22);
    long long i2xx = min(L22, L33);
    long long i3xx = min(L11, L33);

    long long i1xxx = max(i1x, L3);
    long long i2xxx = min(i1xx, L33);

    long long i1y = max(C1, C2);
    long long i2y = max(C2, C3);
    long long i3y = max(C1, C3);

    long long i1yy = min(C11, C22);
    long long i2yy = min(C22, C33);
    long long i3yy = min(C11, C33);

    long long i1yyy = max(i1y, C3);
    long long i2yyy = min(i1yy, C33);


    long long Aria = aria(L1,C1,L11,C11)+aria(L2,C2,L22,C22)+aria(L3,C3,L33,C33)-aria(i1x,i1y,i1xx,i1yy)-aria(i2x,i2y,i2xx,i2yy)-aria(i3x,i3y,i3xx,i3yy)+aria(i1xxx,i1yyy,i2xxx,i2yyy);
    g << Aria << " ";
    long long Perimetru = perimetru(L1,C1,L11,C11)+perimetru(L2,C2,L22,C22)+perimetru(L3,C3,L33,C33)-perimetru(i1x,i1y,i1xx,i1yy)-perimetru(i2x,i2y,i2xx,i2yy)-perimetru(i3x,i3y,i3xx,i3yy)+perimetru(i1xxx,i1yyy,i2xxx,i2yyy);
    g << Perimetru << '\n';

    g.close();
    return 0;
}