Pagini recente » Cod sursa (job #411335) | Cod sursa (job #2083855) | Cod sursa (job #2962183) | Cod sursa (job #2884923) | Cod sursa (job #914277)
Cod sursa(job #914277)
#include<cstdio>
#define ok(x) ((x)%2==0 && (x)/2>=0 && (x)/2<w)
static short sqrt[405*405+5];
int calc (int b,int c,int w)
{
int d=b*b-4*c;
int ret=0;
if(d==0){
if(ok (b))
ret++;
} else if(d>0 && sqrt[d]){
if(ok (b-sqrt[d]))
ret++;
if(ok (b+sqrt[d]))
ret++;
}
return ret;
}
int main (void)
{
freopen ("dreptunghiuri.in","r",stdin);
#ifdef INFOARENA
freopen ("dreptunghiuri.out","w",stdout);
#endif
for(int i=1;i<=405;i++)
sqrt[i*i]=i;
int m,n;
long long ret=0;
scanf ("%d%d",&m,&n);
for(int w=1;w<m;w++)
for(int h=w;h<m;h++)
for(int a=0;a<h;a++){
int x=calc (w,a*(h-a),w);
ret+=x*(m-w)*(n-h);
if(h!=w)
ret+=x*(n-w)*(m-h);
}
printf ("%lld",ret);
return 0;
}