Pagini recente » Cod sursa (job #2198818) | Cod sursa (job #2426261) | Cod sursa (job #1726762) | Cod sursa (job #1454476) | Cod sursa (job #2533958)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
typedef long long lint;
struct poly {
lint a, b, c, d;
};
poly v[10];
int ab(int x) { return (x < 0 ? -x : x); }
lint ab(lint x) { return (x < 0 ? -x : x); }
lint area(poly a) {
return ab((a.a - a.c) * (a.b - a.d));
}
lint 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;
}