Cod sursa(job #498549)

Utilizator mgntMarius B mgnt Data 5 noiembrie 2010 15:04:30
Problema Reuniune Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <iostream>
using namespace std;

typedef long long int lli;
struct R{lli x1,x2,y1,y2;};
istream& operator>>(istream&i,R&r)
{i>>r.x1>>r.y1>>r.x2>>r.y2;return i;}

void i(R&r1,R&r2,R&r3)
{	R r;
	r.x1=(r2.x1<r1.x1)?r1.x1:r2.x1;
	r.x2=(r2.x2<r1.x2)?r2.x2:r1.x2;
	r.y1=(r2.y1<r1.y1)?r1.y1:r2.y1;
	r.y2=(r2.y2<r1.y2)?r2.y2:r1.y2;
	r.x1=(r.x1<r.x2)?r.x1:r.x2;
	r.y1=(r.y1<r.y2)?r.y1:r.y2;
	r3=r;
}

lli a(R&r){return (r.x2-r.x1)*(r.y2-r.y1);}
lli p(R&r){return 2*(r.x2-r.x1+r.y2-r.y1);}

int main()
{	ifstream is("reuniune.in");
	ofstream os("reuniune.out");
	R r1,r2,r3,r12,r23,r31,r123;is>>r1>>r2>>r3;
	i(r1,r2,r12);i(r2,r3,r23);i(r3,r1,r31);i(r12,r3,r123);
	lli s=a(r1)+a(r2)+a(r3)-a(r12)-a(r23)-a(r31)+a(r123);
	lli q=p(r1)+p(r2)+p(r3)-p(r12)-p(r23)-p(r31)+p(r123);
	os<<s<<' '<<q<<endl;
	return 0;
}