Pagini recente » Cod sursa (job #1261166) | Cod sursa (job #2452375) | Istoria paginii runda/qwdqfqw/clasament | Cod sursa (job #1259191) | Cod sursa (job #709052)
Cod sursa(job #709052)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct dreptunghi {
int 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;
return d;
}
int aria(dreptunghi d) {
return (d.x2 - d.x1) * (d.y2 - d.y1);
}
int perim(dreptunghi d) {
return (d.x2 - d.x1 + d.y2 - d.y1) * 2;
}
int main() {
int 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;
}