Pagini recente » Profil carol800 | Cod sursa (job #1336492) | Cod sursa (job #984983) | Cod sursa (job #204865) | Cod sursa (job #1001818)
#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 LLERSECTIE(DREPTUNGHI a, DREPTUNGHI b)
{
DREPTUNGHI poLL;
poLL.X0 = std :: max(a.X0, b.X0);
poLL.X1 = std :: min(a.X1, b.X1);
poLL.Y0 = std :: max(a.Y0, b.Y0);
poLL.Y1 = std :: min(a.Y1, b.Y1);
return poLL;
}
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(LLERSECTIE(A, B)) - ARIA(LLERSECTIE(A, C)) -
ARIA(LLERSECTIE(B, C)) + ARIA(LLERSECTIE(LLERSECTIE(A, B), C));
P = PERIMETRU(A) + PERIMETRU(B) + PERIMETRU(C) - PERIMETRU(LLERSECTIE(A, B)) -
PERIMETRU(LLERSECTIE(A, C)) - PERIMETRU(LLERSECTIE(B, C)) + PERIMETRU(LLERSECTIE(LLERSECTIE(A, B), C));
g << Aria << ' ' << P << '\n';
g.close();
return 0;
}