Pagini recente » Cod sursa (job #3241971) | Cod sursa (job #60574) | Cod sursa (job #2811155) | Cod sursa (job #237905) | Cod sursa (job #1332347)
#include <bits/stdc++.h>
using namespace std;
struct Dreptunghi {
int x0, x1, y0, y1;
Dreptunghi operator+(const Dreptunghi& other) {
Dreptunghi d;
d.x0 = max(x0, other.x0);
d.x1 = min(x1, other.x1);
d.y0 = max(y0, other.y0);
d.y1 = min(y1, other.y1);
if (d.x0 > d.x1)
d.x0 = d.x1 = 0;
if (d.y0 > d.y1)
d.y0 = d.y1 = 0;
return d;
}
long long area() {
return (long long)(y1 - y0) * (x1 - x0);
}
long long perim() {
return 2 * (long long)(y1 - y0) + 2 * (long long)(x1 - x0);
}
};
istream& operator>>(istream& in, Dreptunghi& dr) {
int x0, y0, x1, y1;
in >> x0 >> y0 >> x1 >> y1;
dr.x0 = min(x0, x1);
dr.x1 = max(x0, x1);
dr.y0 = min(y0, y1);
dr.y1 = max(y0, y1);
return in;
}
int main() {
freopen("reuniune.in", "r", stdin);
freopen("reuniune.out", "w", stdout);
Dreptunghi A, B, C;
cin >> A >> B >> C;
long long S = A.area() + B.area() + C.area() - (A+B).area() - (A+C).area() - (B+C).area() + (A+B+C).area();
long long P = A.perim() + B.perim() + C.perim() - (A+B).perim() - (A+C).perim() - (B+C).perim() + (A+B+C).perim();
cout << S << ' ' << P << endl;
}