Pagini recente » Cod sursa (job #789185) | Cod sursa (job #3359661)
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dreptunghi
{
long long x0, y0, x1, y1;
};
dreptunghi a, b, c;
void citire(dreptunghi &d)
{
f >> d.x0 >> d.y0 >> d.x1 >> d.y1;
}
long long arie(const dreptunghi &d)
{
return (d.x1 - d.x0) * (d.y1 - d.y0);
}
long long perimetru(const dreptunghi &d)
{
return 2 * (d.x1 - d.x0 + d.y1 - d.y0);
}
dreptunghi inter(const dreptunghi &a, const dreptunghi &b)
{
dreptunghi c;
c.x0 = max(a.x0, b.x0);
c.y0 = max(a.y0, b.y0);
c.x1 = min(a.x1, b.x1);
c.y1 = min(a.y1, b.y1);
return c;
}
int main()
{
citire(a);
citire(b);
citire(c);
dreptunghi ab = inter(a, b);
dreptunghi ac = inter(a, c);
dreptunghi bc = inter(b, c);
dreptunghi abc = inter(ab, c);
long long A = arie(a) + arie(b) + arie(c)
- arie(ab) - arie(ac) - arie(bc)
+ arie(abc);
long long P = perimetru(a) + perimetru(b) + perimetru(c)
- perimetru(ab) - perimetru(ac) - perimetru(bc)
+ perimetru(abc);
g << A << ' ' << P;
return 0;
}