Cod sursa(job #692165)

Utilizator valentina506Moraru Valentina valentina506 Data 26 februarie 2012 14:27:59
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<fstream>
#include<algorithm>
using namespace std;
struct dreptunghi
{
	long long int xs, ys, xd, yd;
};
dreptunghi d1, d2, d3;


dreptunghi intersectie (dreptunghi d1, dreptunghi d2) 
{
	dreptunghi d;
	
	d.xs=max(d1.xs,d2.xs);
	d.xd=min(d1.xd,d2.xd);
	d.ys=max(d1.ys,d2.ys);
	d.yd=min(d1.yd,d2.yd);

	if (d.xs>d.xd||d.ys>d.yd)
		d.xs=d.ys=d.xd=d.yd=0;
	return d;
}

long long arie(dreptunghi d) 
{
	return (d.xd-d.xs)*(d.yd-d.ys);
}

long long perim(dreptunghi d) 
{
	return (d.xd-d.xs+d.yd-d.ys)*2;
}

int main () 
{

	freopen ("reuniune.in", "r", stdin);
	freopen ("reuniune.out", "w", stdout);

	scanf("%lld %lld %lld %lld", &d1.xs, &d1.ys, &d1.xd, &d1.yd);
	scanf("%lld %lld %lld %lld", &d2.xs, &d2.ys, &d2.xd, &d2.yd);
	scanf("%lld %lld %lld %lld", &d3.xs, &d3.ys, &d3.xd, &d3.yd);

	printf ("%lld ",arie(d1)+arie(d2)+arie(d3)-arie(intersectie(d1,d2))-arie(intersectie(d1,d3))-arie(intersectie(d2,d3))+arie(intersectie(intersectie(d1,d2),d3)));
	printf ("%lld ",perim(d1)+perim(d2)+perim(d3)-perim(intersectie(d1,d2))-perim(intersectie(d1,d3))-perim(intersectie(d2,d3))+perim(intersectie(intersectie(d1,d2),d3)));
	
	return 0;
}