Pagini recente » Cod sursa (job #140498) | Cod sursa (job #653624) | Cod sursa (job #2869672) | Cod sursa (job #117197) | Cod sursa (job #3220957)
using namespace std;
#ifdef EZ
#include "./ez/ez.h"
const string FILE_NAME = "test";
#else
#include <bits/stdc++.h>
const string FILE_NAME = "reuniune";
#endif
#define mp make_pair
#define ll long long
#define pb push_back
#define fi first
#define se second
#define cin fin
#define cout fout
ifstream fin (FILE_NAME + ".in");
ofstream fout (FILE_NAME + ".out");
struct dr {
ll x1, y1, x2, y2;
};
ll arie(dr x)
{ return max(0LL, x.x2-x.x1) * max(0LL, x.y2-x.y1); }
ll peri(dr x)
{ return 2 * (max(0LL, x.x2-x.x1) + max(0LL, x.y2-x.y1)); }
int main()
{
dr v[3];
for (int i = 0; i < 3; ++i) cin >> v[i].x1 >> v[i].y1 >> v[i].x2 >> v[i].y2;
ll a = 0, p = 0;
a += arie(v[0]) + arie(v[1]) + arie(v[2]);
p += peri(v[0]) + peri(v[1]) + peri(v[2]);
for (int i = 0; i < 3; ++i) for (int j = i+1; j < 3; ++j)
{
dr d{max(v[i].x1, v[j].x1), max(v[i].y1, v[j].y1), min(v[i].x2, v[j].x2), min(v[i].y2, v[j].y2)};
a -= arie(d);
p -= peri(d);
}
dr d{max({v[0].x1, v[1].x1, v[2].x1}), max({v[0].y1, v[1].y1, v[2].y1}), min({v[0].x2, v[1].x2, v[2].x2}), min({v[0].y2, v[1].y2, v[2].y2})};
a += arie(d);
p += peri(d);
cout << a << ' ' << p;
}