Pagini recente » Cod sursa (job #1037063) | Cod sursa (job #1811186) | Cod sursa (job #904683) | Cod sursa (job #2286202) | Cod sursa (job #1001822)
#include <fstream>
#define IN "reuniune.in"
#define OUT "reuniune.out"
#define LL long long
std :: ifstream f(IN);
std :: ofstream g(OUT);
LL P, Aria;
struct DREPTUNGHI
{
LL X0, X1, Y0, Y1;
} A, B, C;
inline LL PERIMETRU(DREPTUNGHI punct)
{
return 2 * (punct.X1 - punct.X0 + punct.Y1 - punct.Y0);
}
inline LL 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;
}