Pagini recente » Cod sursa (job #2121058) | Cod sursa (job #1007296) | Cod sursa (job #2283507) | Cod sursa (job #2916652) | Cod sursa (job #2974048)
#include <bits/stdc++.h>
#define int long long
using namespace std;
struct rectangle
{
int x1, y1;
int x2, y2;
};
int bestX, bestY, worstX = 1e9, worstY = 1e9, totalPoints;
vector <rectangle> v;
signed main()
{
for(int i = 1;i <= 3; ++i)
{
int a, b, c, d;
std::cin >> a >> b >> c >> d;
bestX = max(bestX, c), bestY = max(bestY, d);
worstX = min(worstX, a), worstY = min(worstY, b);
totalPoints += (c - a) * (d - b);
v.push_back({a, b, c, d});
}
int p = (bestX + bestY - worstX - worstY) * 2;
for(int i = 1;i < (1 << 3); ++i)
{
if(i == 1 || i == 2 | i == 4)
continue;
int rightX = -1e9, rightY = 1e9, leftX = 1e9, leftY = -1e9, cnt = 0, bits = 0;
for(int j = 1;j <= i; j *= 2)
{
if(i & j)
{
rightX = max(rightX, v[cnt].y1), leftY = max(leftY, v[cnt].x1);
rightY = min(rightY, v[cnt].x2), leftX = min(leftX, v[cnt].y2);
bits++;
}
cnt++;
}
if(bits % 2)
totalPoints += abs((leftX - rightX)) * abs((leftY - rightY));
else
totalPoints -= abs((leftX - rightX)) * abs((leftY - rightY));
}
std::cout << totalPoints << ' ' << p;
}