Pagini recente » Cod sursa (job #351077) | Cod sursa (job #382957) | Cod sursa (job #2469026) | Cod sursa (job #3234268) | Cod sursa (job #3143563)
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dreptunghi {
long long x0, y0, x1, y1;
} d1, d2, d3;
dreptunghi inter(dreptunghi a,dreptunghi b) {
long long x0 = max(a.x0,b.x0),
y0 = max(a.y0,b.y0),
x1 = min(a.x1,b.x1),
y1 = min(a.y1,b.y1);
return {x0, y0, x1, y1};
}
inline long long arie(dreptunghi a) {
return (a.x0 > a.x1 || a.y0 > a.y1) ? 0 : (a.x1 - a.x0) * (a.y1 - a.y0);
}
inline long long per(dreptunghi a)
{
return (a.x0 > a.x1 || a.y0 > a.y1) ? 0 : 2 * (a.x1 - a.x0 + a.y1 - a.y0);
}
int main()
{
f >> d1.x0 >> d1.y0 >> d1.x1 >> d1.y1 >> d2.x0 >> d2.y0 >> d2.x1 >> d2.y1 >> d3.x0 >> d3.y0 >> d3.x1 >> d3.y1;
long long a = arie(d1) + arie(d2) + arie(d3)
- arie(inter(d1,d2)) - arie(inter(d1,d3)) - arie(inter(d2,d3))
+ arie(inter(d1,inter(d2,d3)));
long long p = per(d1) + per(d2) + per(d3)
- per(inter(d1,d2)) - per(inter(d1,d3)) - per(inter(d2,d3))
+ per(inter(d1,inter(d2,d3)));
g << a << ' ' << p;
f.close();
g.close();
return 0;
}