Pagini recente » Cod sursa (job #2911997) | Cod sursa (job #1643146) | Cod sursa (job #2167142) | Cod sursa (job #3242663) | Cod sursa (job #1442308)
#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;
}