Pagini recente » Cod sursa (job #1937510) | Cod sursa (job #1191866) | Cod sursa (job #382758) | Cod sursa (job #147483) | Cod sursa (job #1466908)
#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;
};
int Area ( Dreptunghi A ){
return (A.x2-A.x1) * (A.y2-A.y1);
}
int Perim ( Dreptunghi A ){
return 2 * ( (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(){
int 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, "%d %d", TotalArea, TotalPerim );
return 0;
}