Cod sursa(job #2194998)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 14 aprilie 2018 21:04:43
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
using namespace std;
 
ifstream f("reuniune.in");
ofstream g("reuniune.out");
 
struct coord
{ 
	int x1, y1, x2, y2; 
} dr1, dr2, dr3;
 
long long arie(coord dr) 
{ 
	return (dr.x2 - dr.x1) * 1LL * (dr.y2 - dr.y1); 
}
long long perimetru (coord dr) 
{ 
	return 2LL * ((dr.x2 - dr.x1) + (dr.y2 - dr.y1)); 
}
 
coord intersectie(coord dr1, coord dr2) 
{
	coord dr = {max(dr1.x1, dr2.x1), max(dr1.y1, dr2.y1), min(dr1.x2, dr2.x2), min( dr1.y2, dr2.y2)};
	if(dr.x1 > dr.x2 || dr.y1 > dr.y2)
		dr = {0, 0, 0, 0};
	return dr;
}
 
int main() 
{
	f >> dr1.x1 >> dr1.y1 >> dr1.x2 >> dr1.y2;
	f >> dr2.x1 >> dr2.y1 >> dr2.x2 >> dr2.y2;
	f >> dr3.x1 >> dr3.y1 >> dr3.x2 >> dr3.y2;
	g << arie(dr1) + arie(dr2) + arie(dr3) - arie(intersectie(dr1, dr2)) - arie(intersectie(dr1, dr3)) - arie(intersectie(dr2, dr3)) + arie( intersectie(dr1, intersectie(dr2, dr3))) <<  " ";
	g << perimetru(dr1) + perimetru(dr2) + perimetru(dr3) - perimetru(intersectie(dr1, dr2)) - perimetru(intersectie(dr1, dr3)) - perimetru(intersectie(dr2, dr3)) + perimetru(intersectie(dr1, intersectie(dr2, dr3))) << "\n";
}