Pagini recente » Cod sursa (job #292595) | Cod sursa (job #2066819) | Cod sursa (job #1476489) | Cod sursa (job #1350392) | Cod sursa (job #331663)
Cod sursa(job #331663)
#include <stdio.h>
struct dreptunghi
{
int a,b,c,d;
};
dreptunghi v[5];
long long arie,perimetru;
long long modul(long long x)
{
if (x<0)
return -x;
return x;
}
int max(int a,int b)
{
if (a>b)
return a;
return b;
}
int min(int a,int b)
{
if (a<b)
return a;
return b;
}
int maxim(int a,int b,int c)
{
int r=max(a,b);
return max(r,c);
}
int minim(int a,int b,int c)
{
int r=min(a,b);
return min(r,c);
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
int i,crd1,crd2,crd3,crd4;
for (i=1; i<=3; i++)
{
scanf("%d%d%d%d",&v[i].a,&v[i].b,&v[i].c,&v[i].d);
arie=(long long)arie+(long long)modul(v[i].c-v[i].a)*modul(v[i].d-v[i].b);
perimetru=(long long)perimetru+((long long)modul(v[i].c-v[i].a)+modul(v[i].d-v[i].b))*2;
}
for (i=2; i<=3; i++)
{
crd1=max(v[i].a,v[1].a);
crd2=max(v[i].b,v[1].b);
crd3=min(v[i].c,v[1].c);
crd4=min(v[i].d,v[1].d);
arie=(long long)arie-(long long)modul(crd3-crd1)*modul(crd4-crd2);
perimetru=(long long)perimetru-((long long)modul(crd3-crd1)+modul(crd4-crd2))*2;
}
crd1=maxim(v[1].a,v[2].a,v[3].a);
crd2=maxim(v[1].b,v[2].b,v[3].b);
crd3=minim(v[1].c,v[2].c,v[3].c);
crd4=minim(v[1].d,v[2].d,v[3].d);
arie=(long long)arie-(long long)modul(crd3-crd1)*modul(crd4-crd2);
perimetru=(long long)perimetru-((long long)modul(crd3-crd1)+modul(crd4-crd2))*2;
printf("%lld ",arie);
printf("%lld\n",perimetru);
return 0;
}