Pagini recente » Cod sursa (job #721924) | Cod sursa (job #1275155) | Rezultate Algorel | Cod sursa (job #825968) | Cod sursa (job #709062)
Cod sursa(job #709062)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct dreptunghi {
long long x1, x2, y1, y2;
}v[5];
dreptunghi iT(dreptunghi a, dreptunghi b) {
dreptunghi d;
d.x1 = max(a.x1, b.x1);
d.x2 = min(a.x2, b.x2);
d.y1 = max(a.y1, b.y1);
d.y2 = min(a.y2, b.y2);
if((d.x1 > d.x2) || (d.y1 > d.y2))
d.x1 = d.x2 = d.y1 = d.y2 = 0;
return d;
}
long long aria(dreptunghi d) {
return (d.x2 - d.x1) * (d.y2 - d.y1);
}
long long perim(dreptunghi d) {
return (d.x2 - d.x1 + d.y2 - d.y1) * 2;
}
int main() {
long long i;
for(i = 1; i <= 3; ++i)
fin >> v[i].x1 >> v[i].y1 >> v[i].x2 >> v[i].y2;
fout << aria(v[1]) + aria(v[2]) + aria(v[3]) - aria(iT(v[1], v[2])) - aria(iT(v[1], v[3])) - aria(iT(v[2], v[3])) + aria(iT(iT(v[1], v[2]), v[3]));
fout << " ";
fout << perim(v[1]) + perim(v[2]) + perim(v[3]) - perim(iT(v[1], v[2])) - perim(iT(v[1], v[3])) - perim(iT(v[2], v[3])) + perim(iT(iT(v[1], v[2]), v[3]));
fout << "\n";
fout.close();
return 0;
}