Pagini recente » Cod sursa (job #3167243) | Cod sursa (job #1781967) | Cod sursa (job #1045655) | Cod sursa (job #2436219) | Cod sursa (job #919404)
Cod sursa(job #919404)
#include <fstream>
#define maxim(a, b) ((a < b) ? b : a)
#define minim(a, b) ((a < b) ? a : b)
using namespace std;
const char iname[] = "reuniune.in";
const char oname[] = "reuniune.out";
ifstream fin(iname);
ofstream fout(oname);
struct drept{long long x, y, z, t;};
inline drept sec(drept a, drept b)
{
drept r;
r.x = maxim(a.x,b.x);
r.y = maxim(a.y,b.y);
r.z = minim(a.z,b.z);
r.t = minim(a.t,b.t);
if (r.x > r.z || r.y > r.t)
r.x = r.y = r.z = r.t = 0;
return r;
}
inline long long s(drept a)
{
return (a.z - a.x) * (a.t - a.y);
}
inline long long p(drept a)
{
return a.z - a.x + a.t - a.y << 1;
}
int main()
{
drept a,b,c;
fin >> a.x >> a.y >> a.z >> a.t;
fin >> b.x >> b.y >> b.z >> b.t;
fin >> c.x >> c.y >> c.z >> c.t;
fout << s(a) + s(b) + s(c) - s(sec(a,b)) - s(sec(c,b)) - s(sec(a,c)) + s(sec(sec(a,b),c)) << " ";
fout << p(a) + p(b) + p(c) - p(sec(a,b)) - p(sec(c,b)) - p(sec(a,c)) + p(sec(sec(a,b),c)) << "\n";
return 0;
}