Pagini recente » Cod sursa (job #2852442) | Cod sursa (job #2767369) | Cod sursa (job #2142446) | Cod sursa (job #1163045) | Cod sursa (job #2530118)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 4;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct fig {
long long x, y, x1, y1;
};
fig v[N];
long long total_area = 0, total_perimeter = 0;
fig intersection(fig va, fig vb) {
fig ans;
ans.x = max(va.x, vb.x);
ans.y = max(va.y, vb.y);
ans.x1 = min(va.x1, vb.x1);
ans.y1 = min(va.y1, vb.y1);
if (ans.x > ans.x1 || ans.y > ans.y1) {
ans = {0, 0, 0, 0};
}
return ans;
}
int main() {
for (int i = 1; i <= 3; i++) {
in >> v[i].x >> v[i].y >> v[i].x1 >> v[i].y1;
total_area += (v[i].x1 - v[i].x) * (v[i].y1 - v[i].y);
total_perimeter += ((v[i].x1 - v[i].x) + (v[i].y1 - v[i].y)) * 2;
}
for (int i = 1; i <= 2; i++) {
for (int j = i + 1; j <= 3; j++) {
fig a = intersection(v[i], v[j]);
total_area -= (a.x1 - a.x) * (a.y1 - a.y);
total_perimeter -= ((a.x1 - a.x) + (a.y1 - a.y)) * 2;
}
}
fig a = intersection(intersection(v[1], v[2]), v[3]);
total_area += (a.x1 - a.x) * (a.y1 - a.y);
total_perimeter += ((a.x1 - a.x) + (a.y1 - a.y)) * 2;
out << total_area << " " << total_perimeter << "\n";
return 0;
}