Cod sursa(job #980036)

Utilizator Kira96Denis Mita Kira96 Data 3 august 2013 19:25:33
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>
#define L long long
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dr{L x1,x2,y1,y2;};
dr d1,d2,d3;
dr det(dr d1,dr d2)
{
	dr nul;
	nul.x1=nul.x2=nul.y1=nul.y2=0;
	dr dre;
	dre.x1=max(d1.x1,d2.x1); dre.y1=max(d1.y1,d2.y1);
	dre.x2=min(d1.x2,d2.x2); dre.y2=min(d1.y2,d2.y2);
	if(dre.x1>dre.x2||dre.y1>dre.y2)
		return nul;
	return dre;
}
L aria(dr d) { return (d.x2-d.x1)*(d.y2-d.y1); }
L peri(dr d) { return 2*(d.x2-d.x1+d.y2-d.y1); }
int main ()
{
	f>>d1.x1>>d1.y1>>d1.x2>>d1.y2;
	f>>d2.x1>>d2.y1>>d2.x2>>d2.y2;
	f>>d3.x1>>d3.y1>>d3.x2>>d3.y2;
	g<<aria(d1)+aria(d2)+aria(d3)-aria(det(d1,d2))-aria(det(d2,d3))-aria(det(d1,d3))+aria(det(det(d1,d2),d3))<<" "<<peri(d1)+peri(d2)+peri(d3)-peri(det(d1,d2))-peri(det(d2,d3))-peri(det(d1,d3))+peri(det(det(d1,d2),d3));
	return 0;
}