Pagini recente » Cod sursa (job #882332) | Cod sursa (job #1069794) | Cod sursa (job #942515) | Cod sursa (job #2920960) | Cod sursa (job #2217207)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("reuniune.in");
ofstream fout ("reuniune.out");
long long a, p;
struct drept {
int x1, y1, x2, y2;
}v[3];
long long arie (drept d) {
return 1LL * (d.x2 - d.x1) * (d.y2 - d.y1);
}
long long perimetru (drept d) {
return 2LL * (d.x2 - d.x1 + d.y2 - d.y1);
}
drept piu (drept d1, drept d2) {
int x1 = max(d1.x1 , d2.x1);
int y1 = max(d1.y1, d2.y1);
int x2 = min(d1.x2, d2.x2);
int y2 = min(d1.y2, d2.y2);
if (x1 > x2 || y1 > y2)
x1 = y1 = x2 = y2 = 0;
return {x1, y1, x2, y2};
}
int main() {
for (int i = 0; i < 3; i++)
fin >> v[i].x1 >> v[i].y1 >> v[i].x2 >> v[i].y2;
a = arie(v[0])
+ arie(v[1])
+ arie(v[2])
- arie(piu(v[0], v[1]))
- arie (piu(v[0], v[2]))
- arie (piu(v[1], v[2]))
+ arie(piu(v[0], piu(v[1], v[2])));
p = perimetru(v[0])
+ perimetru(v[1])
+ perimetru(v[2])
- perimetru(piu(v[0], v[1]))
- perimetru(piu(v[0], v[2]))
- perimetru(piu(v[1], v[2]))
+ perimetru(piu(v[0], piu(v[1], v[2])));
fout << a << " " << p;
return 0;
}