Cod sursa(job #530120)

Utilizator HoriaClementHoriaC HoriaClement Data 6 februarie 2011 21:45:54
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>

using namespace std;

ifstream in("reuniune.in");
ofstream out("reuniune.out");

struct punct
{
	long long x0,y0,x1,y1;
};

punct a,b,c;

inline long long maxim(long long x,long long y)
{
	return x > y ? x : y;
}
inline long long minim(long long x,long long y)
{
	return x < y ? x : y;
}

inline long long ar(punct a)
{
	return (a.x1-a.x0)*(a.y1-a.y0);
}
inline long long p(punct a)
{
	return 2*(a.x1-a.x0)+ 2*(a.y1-a.y0);
}
punct i(punct a,punct b)
{
	punct inter;
	inter.x0=maxim(a.x0,b.x0);
	inter.y0=maxim(a.y0,b.y0);
	inter.x1=minim(a.x1,b.x1);
	inter.y1=minim(a.y1,b.y1);
	if(inter.x0>inter.x1 || inter.y0>inter.y1)
	{ 
		inter.x0=0,inter.x1=0,inter.y0=0,inter.y1=0; 
	}
	return inter;
}
void citire()
{
	in>>a.x0>>a.y0>>a.x1>>a.y1;
	in>>b.x0>>b.y0>>b.x1>>b.y1;
	in>>c.x0>>c.y0>>c.x1>>c.y1;
}

void work()
{
	out<<ar(a)+ar(b)+ar(c)-ar(i(a,b))-ar(i(b,c))-ar(i(a,c))+ar(i(i(b,c),a))<<" ";
	out<<p(a)+p(b)+p(c)-p(i(a,b))-p(i(b,c))-p(i(a,c))+p(i(i(b,c),a)); 
}
int main()
{
	citire();
	work();
	return 0;
}