Pagini recente » Cod sursa (job #2746607) | Cod sursa (job #1508150) | Cod sursa (job #2563471) | Cod sursa (job #1386165) | Cod sursa (job #1214620)
#include<cstdio>
#include<fstream>
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<vector>
#include<bitset>
#include<deque>
#include<queue>
#include<set>
#include<map>
#include<cmath>
#include<cstring>
#include<ctime>
#include<cstdlib>
#define ll long long
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define dbg(x) (cout<<#x<<" = "<<(x)<<endl)
using namespace std;
const int nmax = 405;
int n,m,i,j,sqr[nmax*nmax];
ll sol;
int solve(int w,int h)
{
int ret=0;
for(int a=1; a<=h; a++)
{
int delta=w*w-4*a*(h-a);
if(delta<0) continue;
if(delta==0)
{
if(w%2==0) ret++;
continue;
}
if(sqr[delta]==0) continue;
int d=w+sqr[delta];
if(d%2==0)
{
d/=2;
if(d>=1 && d<=w) ret++;
}
d=w-sqr[delta];
if(d%2==0)
{
d/=2;
if(d>=1 && d<=w) ret++;
}
}
return ret;
}
int main()
{
freopen("dreptunghiuri.in","r",stdin);
freopen("dreptunghiuri.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1; i<=400; i++)
sqr[i*i]=i;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
sol+=1LL*solve(i,j)*(n-i)*(m-j);
printf("%lld\n",sol);
return 0;
}