Pagini recente » Cod sursa (job #3333729) | Cod sursa (job #903827) | Cod sursa (job #1825934) | Cod sursa (job #1603764) | Cod sursa (job #3359187)
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dreptunghi {
long long x0, y0, x1, y1;
} a[3];
long long A, P;
long long xa, ya, xb, yb;
int main() {
for(int i = 0; i < 3; i++)
f >> a[i].x0 >> a[i].y0 >> a[i].x1 >> a[i].y1;
for(int i = 0; i < 3; i++) {
A += (a[i].x1 - a[i].x0) * (a[i].y1 - a[i].y0);
P += 2 * (a[i].x1 - a[i].x0 + a[i].y1 - a[i].y0);
}
for(int i = 0; i < 2; i++)
for(int j = i + 1; j < 3; j++) {
xa = max(a[i].x0, a[j].x0);
ya = max(a[i].y0, a[j].y0);
xb = min(a[i].x1, a[j].x1);
yb = min(a[i].y1, a[j].y1);
if(xb > xa && yb > ya) {
A -= (xb - xa) * (yb - ya);
P -= 2 * (xb - xa + yb - ya);
}
}
xa = max(a[0].x0, max(a[1].x0, a[2].x0));
ya = max(a[0].y0, max(a[1].y0, a[2].y0));
xb = min(a[0].x1, min(a[1].x1, a[2].x1));
yb = min(a[0].y1, min(a[1].y1, a[2].y1));
if(xb > xa && yb > ya) {
A += (xb - xa) * (yb - ya);
P += 2 * (xb - xa + yb - ya);
}
g << A << ' ' << P;
f.close();
g.close();
return 0;
}