Pagini recente » Cod sursa (job #1631428) | Cod sursa (job #2933779) | Cod sursa (job #1355797) | Cod sursa (job #3160015) | Cod sursa (job #1467038)
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f = fopen ( "reuniune.in", "r" );
FILE *g = fopen ( "reuniune.out", "w" );
struct Dreptunghi{
int x1, y1, x2, y2;
};
long long Area ( Dreptunghi A ){
return 1LL * (A.x2-A.x1) * (A.y2-A.y1);
}
long long Perim ( Dreptunghi A ){
return 2LL * ( (A.x2-A.x1) + (A.y2-A.y1) );
}
Dreptunghi Reun ( Dreptunghi A, Dreptunghi B ){
Dreptunghi Nou;
Nou.x1 = max ( A.x1, B.x1 );
Nou.x2 = min ( A.x2, B.x2 );
Nou.y1 = max ( A.y1, B.y1 );
Nou.y2 = min ( A.y2, B.y2 );
if ( Nou.x1 > Nou.x2 || Nou.y1 > Nou.y2 )
Nou.x1 = Nou.y1 = Nou.x2 = Nou.y2 = 0;
return Nou;
}
int main(){
long long TotalArea = 0, TotalPerim = 0;
Dreptunghi A, B, C, T1, T2, T3, T4;
fscanf ( f, "%d%d%d%d", &A.x1, &A.y1, &A.x2, &A.y2 );
fscanf ( f, "%d%d%d%d", &B.x1, &B.y1, &B.x2, &B.y2 );
fscanf ( f, "%d%d%d%d", &C.x1, &C.y1, &C.x2, &C.y2 );
T1 = Reun(A,B);
T2 = Reun(A,C);
T3 = Reun(B,C);
T4 = Reun(T1,C);
TotalArea = Area(A) + Area(B) + Area(C) - Area(T1) - Area(T2) - Area(T3) + Area (T4);
TotalPerim = Perim(A) + Perim(B) + Perim(C) - Perim(T1) - Perim(T2) - Perim(T3) + Perim(T4);
fprintf ( g, "%lld %lld", TotalArea, TotalPerim );
return 0;
}