Pagini recente » Cod sursa (job #520938) | Cod sursa (job #2015662) | Cod sursa (job #1738783) | Profil MihaelaCismaru | Cod sursa (job #68840)
Cod sursa(job #68840)
#include <cstdio>
#include <fstream>
//FILE *in = fopen("reuniune.in","r"), *out = fopen("reuniune.out","w");
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct dreptunghi
{
long long x0, y0, x1, y1;
};
dreptunghi A, B, C;
long long arie(dreptunghi x)
{
return (x.x1 - x.x0) * (x.y1 - x.y0);
}
long long perim(dreptunghi x)
{
return 2*(x.x1 - x.x0) + 2*(x.y1 - x.y0);
}
int main()
{
// fscanf(in, "%lld %lld %lld %lld", &A.x0, &A.y0, &A.x1, &A.y1);
// fscanf(in, "%lld %lld %lld %lld", &B.x0, &B.y0, &B.x1, &B.y1);
// fscanf(in, "%lld %lld %lld %lld", &C.x0, &C.y0, &C.x1, &C.y1);
in >> A.x0 >> A.y0 >> A.x1 >> A.y1;
in >> B.x0 >> B.y0 >> B.x1 >> B.y1;
in >> C.x0 >> C.y0 >> C.x1 >> C.y1;
dreptunghi AxB, BxC, AxC, AxBxC;
AxB.x0 = A.x0 > B.x0 ? A.x0 : B.x0;
AxB.y0 = A.y0 > B.y0 ? A.y0 : B.y0;
AxB.x1 = A.x1 < B.x1 ? A.x1 : B.x1;
AxB.y1 = A.y1 < B.y1 ? A.y1 : B.y1;
BxC.x0 = B.x0 > C.x0 ? B.x0 : C.x0;
BxC.y0 = B.y0 > C.y0 ? B.y0 : C.y0;
BxC.x1 = B.x1 < C.x1 ? B.x1 : C.x1;
BxC.y1 = B.y1 < C.y1 ? B.y1 : C.y1;
AxC.x0 = A.x0 > C.x0 ? A.x0 : C.x0;
AxC.y0 = A.y0 > C.y0 ? A.y0 : C.y0;
AxC.x1 = A.x1 < C.x1 ? A.x1 : C.x1;
AxC.y1 = A.y1 < C.y1 ? A.y1 : C.y1;
AxBxC.x0 = AxB.x0 > C.x0 ? AxB.x0 : C.x0;
AxBxC.y0 = AxB.y0 > C.y0 ? AxB.y0 : C.y0;
AxBxC.x1 = AxB.x1 < C.x1 ? AxB.x1 : C.x1;
AxBxC.y1 = AxB.y1 < C.y1 ? AxB.y1 : C.y1;
// printf("%lld %lld %lld\n%lld %lld %lld\n", arie(A), arie(B), arie(C), perim(A), perim(B), perim(C));
//
// printf("\n");
//
// printf("%lld %lld %lld\n%lld %lld %lld\n", arie(AxB), arie(BxC), arie(AxC), perim(AxB), perim(BxC), perim(AxC));
//
// printf("\n");
//
// printf("%lld %lld\n", arie(AxBxC), perim(AxBxC));
// fprintf(stdout, "%lld ", arie(A) + arie(B) + arie(C) - arie(AxB) - arie(BxC) - arie(AxC) + arie(AxBxC));
// fprintf(stdout, "%lld\n", perim(A) + perim(B) + perim(C) - perim(AxB) - perim(BxC) - perim(AxC) + perim(AxBxC));
out << arie(A) + arie(B) + arie(C) - arie(AxB) - arie(BxC) - arie(AxC) + arie(AxBxC) << " ";
out << perim(A) + perim(B) + perim(C) - perim(AxB) - perim(BxC) - perim(AxC) + perim(AxBxC) << "\n";
return 0;
}