Cod sursa(job #3359661)

Utilizator nverde1119Popa Narcis Constantin nverde1119 Data 1 iulie 2026 17:27:28
Problema Reuniune Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#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;
}