Pagini recente » Cod sursa (job #2086633) | Cod sursa (job #1363139) | Cod sursa (job #2129708) | Cod sursa (job #3245370) | Cod sursa (job #2533944)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct poly {
int a, b, c, d;
};
poly v[10];
int ab(int x) { return (x < 0 ? -x : x); }
int area(poly a) {
return ab((a.a - a.c) * (a.b - a.d));
}
int per(poly a) {
return 2 * (ab(a.a - a.c) + ab(a.b - a.d));
}
poly mix(poly a, poly b) {
poly c = {0, 0, 0, 0};
c.a = max(a.a, b.a);
c.b = max(a.b, b.b);
c.c = min(a.c, b.c);
c.d = min(a.d, b.d);
if(c.a >= c.c || c.b >= c.d) { return {0, 0, 0, 0}; }
return c;
}
int main()
{
for(int i = 1; i <= 3; i ++) {
f >> v[i].a >> v[i].b >> v[i].c >> v[i].d;
}
g << area(v[1]) + area(v[2]) + area(v[3])
- area(mix(v[1], v[2]))
- area(mix(v[2], v[3]))
- area(mix(v[3], v[1]))
+ area(mix(mix(v[1], v[2]), v[3])) << ' ';
g << per(v[1]) + per(v[2]) + per(v[3])
- per(mix(v[1], v[2]))
- per(mix(v[2], v[3]))
- per(mix(v[3], v[1]))
+ per(mix(mix(v[1], v[2]), v[3])) << ' ';
f.close(); g.close();
return 0;
}