Pagini recente » Cod sursa (job #680858) | Cod sursa (job #2183719) | Cod sursa (job #606537) | Cod sursa (job #2368763) | Cod sursa (job #166727)
Cod sursa(job #166727)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
typedef struct {
int X0, Y0, X1, Y1;
} Dreptunghi;
Dreptunghi d1, d2, d3;
int arie(Dreptunghi d) {
return (d.X1 - d.X0) * (d.Y1 - d.Y0);
}
int perimetru(Dreptunghi d) {
return 2*(d.X1 - d.X0) +
2*(d.Y1 - d.Y0);
}
Dreptunghi intersectie(Dreptunghi a, Dreptunghi b) {
int vah1[] = {a.X0, a.X1, b.X0, b.X1};
sort(vah1, vah1+ 4);
int vah2[] = {a.Y0, a.Y1, b.Y0, b.Y1};
sort(vah2, vah2 + 4);
Dreptunghi d = {vah1[1], vah2[1], vah1[2], vah2[2]};
return d;
}
int main(int argc, char *argv[]) {
ifstream fin("reuniune.in");
fin >> d1.X0 >> d1.Y0 >> d1.X1 >> d1.Y1;
fin >> d2.X0 >> d2.Y0 >> d2.X1 >> d2.Y1;
fin >> d3.X0 >> d3.Y0 >> d3.X1 >> d3.Y1;
fin.close();
ofstream fout("reuniune.out");
fout << arie(d1) + arie(d2) + arie(d3)
- arie(intersectie(d1, d2)) - arie(intersectie(d2, d3)) - arie(intersectie(d1, d3))
+ arie(intersectie(intersectie(d1, d2), d3)) << " ";
fout << perimetru(d1) + perimetru(d2) + perimetru(d3)
- perimetru(intersectie(d1, d2)) - perimetru(intersectie(d2, d3)) - perimetru(intersectie(d1, d3))
+ perimetru(intersectie(intersectie(d1, d2), d3)) << endl;
fout.close();
return 0;
}