Pagini recente » Cod sursa (job #1410990) | Cod sursa (job #950893) | Cod sursa (job #2064434) | Cod sursa (job #3208993) | Cod sursa (job #2764267)
#include<iostream>
#include<cmath>
#include<fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long ar,pe;
struct dreptunghi
{
long long x0,y0,x1,y1,arie,perimetru;
}v[10];
dreptunghi intersectie(dreptunghi a, dreptunghi b)
{
dreptunghi c;
if(a.arie==0 || b.arie==0)
{
c.x0=c.x1=c.y0=c.y1=c.arie=c.perimetru=0;
}
else
{
c.x0=max(a.x0,b.x0);
c.y0=max(a.y0,b.y0);
c.x1=min(a.x1,b.x1);
c.y1=min(a.y1,b.y1);
if(c.x0>c.x1 && c.y0>c.y1)
c.arie=0;
else
{
c.arie=(c.x1-c.x0)*(c.y1-c.y0);
c.perimetru=(c.x1-c.x0+c.y1-c.y0)*2;
}
}
return c;
}
int main()
{
for(int i=1;i<=3;i++)
{
f>>v[i].x0>>v[i].y0>>v[i].x1>>v[i].y1;
if(v[i].x0>v[i].x1 && v[i].y0>v[i].y1)
v[i].arie=0;
else
{
v[i].arie=(v[i].x1-v[i].x0)*(v[i].y1-v[i].y0);
v[i].perimetru=(v[i].x1-v[i].x0+v[i].y1-v[i].y0)*2;
}
}
v[4]=intersectie(v[1],v[2]);
v[5]=intersectie(v[2],v[3]);
v[6]=intersectie(v[1],v[3]);
v[7]=intersectie(v[1],v[5]);
ar=v[1].arie+v[2].arie+v[3].arie-v[4].arie-v[5].arie-v[6].arie+v[7].arie;
pe=v[1].perimetru+v[2].perimetru+v[3].perimetru-v[4].perimetru-v[5].perimetru-v[6].perimetru+v[7].perimetru;
g<<ar<<" "<<pe;
return 0;
}