Cod sursa(job #1825430)

Utilizator adiaioanaAdia R. adiaioana Data 9 decembrie 2016 09:56:33
Problema Reuniune Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct drept{
int x1,y1,x2,y2;
};
int s,p;
drept a,b,c;
int ar(drept d)
{
	return (d.x2-d.x1)*(d.y2-d.y1);
}
int pe(drept d)
{
	return 2*((d.x2-d.x1)+(d.y2-d.y1));
}
drept in(drept a,drept b)
{
	drept d;
	d.x1=max(a.x1,b.x1);
	d.y1=max(a.y1,b.y1);
	d.x2=min(a.x2,b.x2);
	d.y2=min(a.y2,b.y2);
	return d;
}
int main()
{
    fin>>a.x1>>a.y1>>a.x2>>a.y2;
    fin>>b.x1>>b.y1>>b.x2>>b.y2;
    fin>>c.x1>>c.y1>>c.x2>>c.y2;
    s=ar(a)+ar(b)+ar(c);
    s-=(ar(in(a,b))+ar(in(b,c))+ar(in(a,c)));
    s+=(ar(in(in(a,c),b)));
    fout<<s<<' ';
    p=pe(a)+pe(b)+pe(c);
    p-=(pe(in(a,b))+pe(in(b,c))+pe(in(a,c)));
    p+=(pe(in(in(a,c),b)));
    fout<<p;
	return 0;
}