Cod sursa(job #778360)

Utilizator misinozzz zzz misino Data 14 august 2012 16:05:33
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long i;
struct dreptunghi{
	long long x1,x2,y1,y2;
};
dreptunghi v[5];
long long aria(dreptunghi d)
{return (d.x2-d.x1)*(d.y2-d.y1);
}
long long perimetru(dreptunghi d)
{return 2*((d.x2-d.x1)+(d.y2-d.y1));
}
long long min(long long a,long long b)
{if(a<b)
	return a;
return b;
}
long long max(long long a,long long b)
{if(a<b)
	return b;
return a;
}
dreptunghi intersectie (dreptunghi a,dreptunghi b)
{dreptunghi d;
d.x1=max(a.x1,b.x1);
d.x2=min(a.x2,b.x2);
d.y1=max(a.y1,b.y1);
d.y2=min(a.y2,b.y2);
if(d.x1>d.x2||d.y1>d.y2)
	d.x1=0,d.y1=0,d.x2=0,d.y2=0;
return  d;
}
int main()
{for(i=1;i<=3;++i)
	f>>v[i].x1>>v[i].y1>>v[i].x2>>v[i].y2;
g<<aria(v[1])+aria(v[2])+aria(v[3])-aria(intersectie(v[1],v[2]))-aria(intersectie(v[1],v[3]))-aria(intersectie(v[2],v[3]))+aria(intersectie(intersectie(v[1],v[2]),v[3]))<<' ';
g<<perimetru(v[1])+perimetru(v[2])+perimetru(v[3])-perimetru(intersectie(v[1],v[2]))-perimetru(intersectie(v[1],v[3]))-perimetru(intersectie(v[2],v[3]))+perimetru(intersectie(intersectie(v[1],v[2]),v[3]));
f.close();
g.close();
return 0;
}