Pagini recente » Cod sursa (job #1140922) | Cod sursa (job #1876756) | Cod sursa (job #2481249) | Cod sursa (job #492822) | Cod sursa (job #829284)
Cod sursa(job #829284)
#include<fstream>
using namespace std;
ofstream g("reuniune.out");
int i,j,l1,l2,arie,p;
struct drept
{
int ix,iy,ox,oy;
};
drept a[4],c[4];
int lungime(int a,int b)
{
return max(a,b)-min(a,b);
}
void intersectie(drept a,drept b)
{
++j;
if((a.ix==b.ox&&a.iy==b.oy)||(a.ox==b.ix&&a.oy==b.iy))
return ;
if((a.ix<=b.ox&&a.iy<=b.oy)||(a.ox>=b.ix&&a.oy>=b.iy))
{
c[j].ix=max(a.ix,b.ix);
c[j].iy=max(a.iy,b.iy);
c[j].ox=min(a.ox,b.ox);
c[j].oy=min(a.oy,b.oy);
}
l1=lungime(c[j].ix,c[j].ox);
l2=lungime(c[j].iy,c[j].oy);
//g<<c[j].ix<<" "<<c[j].iy<<" "<<c[j].ox<<" "<<c[j].oy<<" "<<l1<<" "<<l2<<"\n";
if(j!=3)
{
arie-=(l1*l2);
p-=2*(l1+l2);
}
else
{
arie+=(l1*l2);
p+=2*(l2+l1);
}
}
int main()
{
ifstream f("reuniune.in");
for(i=1;i<=3;++i)
{
f>>a[i].ix>>a[i].iy>>a[i].ox>>a[i].oy;
l1=lungime(a[i].ox,a[i].ix);
l2=lungime(a[i].iy,a[i].oy);
p+=2*(l1+l2);
arie+=l1*l2;
}
intersectie(a[1],a[2]);
intersectie(a[1],a[3]);
// intersectie(c[1],c[2]);
g<<arie<<" "<<p<<"\n";
}