Pagini recente » Cod sursa (job #1645799) | Cod sursa (job #2925747) | Cod sursa (job #1585507) | Cod sursa (job #2898478) | Cod sursa (job #2105581)
#include <fstream>
#define maxim(a, b) ((a>b) ? a : b)
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct date {
int x1, x2, y1, y2;
};
date intersectie (date a, date b) {
date c;
c.x1 = max(a.x1, b.x1);
c.x2 = min(a.x2, b.x2);
c.y1 = max(a.y1, b.y1);
c.y2 = min(a.y2, b.y2);
if(c.x2<c.x1) c.x2 = c.x1;
if(c.y1>c.y2) c.y2 = c.y1;
return c;
}
int aria (date a) {
return (a.y2-a.y1)*(a.x2-a.x1);
}
int perimetru (date a) {
return (a.y2-a.y1)*2+(a.x2-a.x1)*2;
}
int i, j, p, ar;
date a, b, c, ab, ac, bc, abc;
int main()
{
f>>a.x1>>a.y1>>a.x2>>a.y2;
f>>b.x1>>b.y1>>b.x2>>b.y2;
f>>c.x1>>c.y1>>c.x2>>c.y2;
ab = intersectie(a, b);
ac = intersectie(a, c);
bc = intersectie(b, c);
abc = intersectie(ac, b);
ar = aria(a) + aria(b) + aria(c) - aria(ab) - aria(ac) - aria(bc) + aria(abc);
p = perimetru(a) + perimetru(b) + perimetru(c) - perimetru(ab) - perimetru(ac) - perimetru(bc) + perimetru(abc);
g<<ar<<' '<<p;
return 0;
}