Cod sursa(job #839230)

Utilizator paulhelmerPaul Helmer paulhelmer Data 21 decembrie 2012 15:51:59
Problema Reuniune Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.56 kb
#include <fstream>
using namespace std;
long long max (long long a, long long b) {if(a>b) return a; else return b;}
long long min (long long a, long long b) {if(a<b) return a; else return b;}
long long x11,x12,y11,y12,x21,x22,y21,y22,x31,x32,y31,y32;

long long arie(long long x1,long long y1,long long x2,long long y2)
{return (x2-x1)*(y2-y1);}
long long perim(long long x1,long long y1,long long x2,long long y2)
{return 2*(x2-x1)+2*(y2-y1);}

int main()
{
    long long a12, b12, c12, d12, a23, b23, c23, d23, a31, b31, c31, d31, m1, m2, n1, n2;
	ifstream f("reuniune.in");
	ofstream g("reuniune.out");

	f >> x11>>y11>>x12>>y12;
	f >> x21>>y21>>x22>>y22;
	f >> x31>>y31>>x32>>y32;

	a12=max(x11,x21);
	a23=max(x21,x31);
	a31=max(x11,x31);

	b12=min(x12,x22);
	b23=min(x22,x32);
	b31=min(x12,x32);

	m1=max(a12,x31);
	m2=min(b12,x32);

	c12=max(y11,y21);
	c23=max(y21,y31);
	c31=max(y11,y31);

	d12=min(y12,y22);
	d23=min(y22,y32);
	d31=min(y12,y32);

	n1=max(c12,y31);
	n2=min(d12,y32);

	if (a12>b12||c12>d12)
		{a12=0; b12=0; c12=0; d12=0;}
	if (a23>b23||c23>d23)
		{a23=0; b23=0; c23=0; d23=0;}
	if (a31>b31||c31>d31)
		{a31=0; b31=0; c31=0; d31=0;}
	if (m1>m2||n1>n2)
		{m1=0; m2=0; n1=0; n2=0;}

	g<<arie(x11,y11,x12,y12)+arie(x21,y21,x22,y22)+arie(x31,y31,x32,y32)-arie(a12,c12,b12,d12)-arie(a23,c23,b23,d23)-arie(a31,c31,b31,d31)+arie(m1,n1,m2,n2);
    g<<perim(x11,y11,x12,y12)+perim(x21,y21,x22,y22)+perim(x31,y31,x32,y32)-perim(a12,c12,b12,d12)-perim(a23,c23,b23,d23)-perim(a31,c31,b31,d31)+perim(m1,n1,m2,n2);

	return 0;
}