Cod sursa(job #1442308)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 25 mai 2015 00:07:22
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("reuniune.in");
ofstream fout("reuniune.out");

struct Square{
    long long int xi, xf, yi, yf;
}A,B,C,IA,IB,IC,ID;

void Intersection(Square S1, Square S2, Square &S3){
    S3.xi = max(S1.xi, S2.xi);
    S3.yi = max(S1.yi, S2.yi);
    S3.xf = min(S1.xf, S2.xf);
    S3.yf = min(S1.yf, S2.yf);
    if(S3.xi > S3.xf || S3.yi > S3.yf){
        S3.xi = S3.yi = S3.xf = S3.yf = 0;
    }
}

long long int Area(Square S){
    return ((S.xf - S.xi) * (S.yf - S.yi));
}
 long long int Per(Square S){
    return 2 * ((S.xf - S.xi) + (S.yf - S.yi));
}

int main()
{
    fin >> A.xi >> A.yi >> A.xf >> A.yf;
    fin >> B.xi >> B.yi >> B.xf >> B.yf;
    fin >> C.xi >> C.yi >> C.xf >> C.yf;
    Intersection(A, B, IA);
    Intersection(A, C, IC);
    Intersection(B, C, IB);
    Intersection(IA, C, ID);
    fout << Area(A) + Area(B) + Area(C) - Area(IA) - Area(IB) - Area(IC) + Area(ID) << " ";
    fout << Per(A) + Per(B) + Per(C) - Per(IA) - Per(IB) - Per(IC) + Per(ID) << " ";
    return 0;
}