Pagini recente » Cod sursa (job #2774225) | Cod sursa (job #3176759) | Cod sursa (job #2116853) | Cod sursa (job #1770085) | Cod sursa (job #1250970)
#include<fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
typedef long long LL;
struct drept{LL a,b,c,d;} v[4];
LL ar,per;
LL arie(drept D)
{
return (D.c-D.a) * (D.d-D.b);
}
LL perim(drept D)
{
return 2*(D.c-D.a)+2*(D.d-D.b);
}
drept inter(drept X,drept Y) //intersectie dreptunghiuri
{
drept Z;
Z.a=max(X.a,Y.a);
Z.b=max(X.b,Y.b);
Z.c=min(X.c,Y.c);
Z.d=min(X.d,Y.d);
if (Z.a>Z.c||Z.b>Z.d) Z.a=0,Z.b=0,Z.c=0,Z.d=0;
return Z;
}
int main()
{
for(int i=1;i<=3;i++)
f>>v[i].a>>v[i].b>>v[i].c>>v[i].d;
//pinex
ar=arie(v[1])+arie(v[2])+arie(v[3])- arie(inter(v[1],v[2]))-arie(inter(v[1],v[3]))-arie(inter(v[2],v[3]))+ arie(inter(inter(v[1],v[2]),v[3]));
per=perim(v[1])+perim(v[2])+perim(v[3])- perim(inter(v[1],v[2]))-perim(inter(v[2],v[3]))-perim(inter(v[1],v[3]))+ perim(inter(inter(v[1],v[2]),v[3]));
g<<ar<<' '<<per;
g.close();
return 0;
}