Pagini recente » Cod sursa (job #2869126) | Cod sursa (job #1117940) | Cod sursa (job #1001816)
#include <fstream>
#define IN "reuniune.in"
#define OUT "reuniune.out"
std :: ifstream f(IN);
std :: ofstream g(OUT);
int P, Aria;
struct DREPTUNGHI
{
int X0, X1, Y0, Y1;
} A, B, C;
inline int PERIMETRU(DREPTUNGHI punct)
{
return 2 * (punct.X1 - punct.X0 + punct.Y1 - punct.Y0);
}
inline int ARIA(DREPTUNGHI punct)
{
return (punct.X1 - punct.X0) * (punct.Y1 - punct.Y0);
}
inline DREPTUNGHI INTERSECTIE(DREPTUNGHI a, DREPTUNGHI b)
{
DREPTUNGHI point;
point.X0 = std :: max(a.X0, b.X0);
point.X1 = std :: min(a.X1, b.X1);
point.Y0 = std :: max(a.Y0, b.Y0);
point.Y1 = std :: min(a.Y1, b.Y1);
return point;
}
int main()
{
f >> A.X0 >> A.Y0 >> A.X1 >> A.Y1;
f >> B.X0 >> B.Y0 >> B.X1 >> B.Y1;
f >> C.X0 >> C.Y0 >> C.X1 >> C.Y1;
Aria = ARIA(A) + ARIA(B) + ARIA(C) - ARIA(INTERSECTIE(A, B)) - ARIA(INTERSECTIE(A, C)) -
ARIA(INTERSECTIE(B, C)) + ARIA(INTERSECTIE(INTERSECTIE(A, B), C));
P = PERIMETRU(A) + PERIMETRU(B) + PERIMETRU(C) - PERIMETRU(INTERSECTIE(A, B)) -
PERIMETRU(INTERSECTIE(A, C)) - PERIMETRU(INTERSECTIE(B, C)) + PERIMETRU(INTERSECTIE(INTERSECTIE(A, B), C));
g << Aria << ' ' << P << '\n';
g.close();
return 0;
}