Pagini recente » Cod sursa (job #2380905) | Cod sursa (job #2835510) | Cod sursa (job #2246696) | Cod sursa (job #621564) | Cod sursa (job #2711522)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
class rectangle {
public:
int x1, y1, x2, y2;
void read() {
fin >> x1 >> y1 >> x2 >> y2;
}
int perimeter() {
return (x2 - x1 + y2 - y1) << 1;
}
int area() {
return (x2 - x1) * (y2 - y1);
}
};
rectangle intersect(const rectangle &A, const rectangle &B) {
rectangle ans;
ans.x1 = max(A.x1, B.x1);
ans.y1 = max(A.y1, B.y1);
ans.x2 = min(A.x2, B.x2);
ans.y2 = min(A.y2, B.y2);
if(ans.x1 <= ans.x2 && ans.y1 <= ans.y2)
return ans;
return rectangle{0, 0, 0, 0};
}
int32_t main() {
vector<rectangle> a(3);
for(auto &x : a)
x.read();
int A = a[0].area() + a[1].area() + a[2].area()
- intersect(a[0], a[1]).area() - intersect(a[0], a[2]).area() - intersect(a[1], a[2]).area()
+ intersect(intersect(a[0], a[1]), a[2]).area();
int P = a[0].perimeter() + a[1].perimeter() + a[2].perimeter()
- intersect(a[0], a[1]).perimeter() - intersect(a[0], a[2]).perimeter() - intersect(a[1], a[2]).perimeter()
+ intersect(intersect(a[0], a[1]), a[2]).perimeter();
fout << A << ' ' << P << '\n';
}