Pagini recente » Cod sursa (job #2820107) | Cod sursa (job #723476) | Cod sursa (job #990020) | Cod sursa (job #2287627) | Cod sursa (job #470210)
Cod sursa(job #470210)
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
#define file_in "dreptunghiuri.in"
#define file_out "dreptunghiuri.out"
#define nmax 404
int n,m;
int Sqrt[nmax*nmax];
void citire()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &n, &m);
}
long long numara(int h, int w)
{
int i,delta;
long long ans=0;
long long x=(n-h+1)*(m-w+1);
for (i=2;i<h;++i)
{
delta=(w-1)*(w-1)-(h-i)*(i-1)*4;
if (Sqrt[delta] && delta>=0)
{
if ((w-1)*(w-1)==(h-i)*(i-1)*4)//o singura solutie
ans++;
else
ans+=2;//2 solutii
}
}
return (ans*x);
}
void solve()
{
int i,j;
long long ans;
for (i=0;i<=400;++i)
Sqrt[i*i]=1;
ans=0;
for (i=3;i<=n;++i)
for (j=3;j<=m;++j)
ans+=numara(i,j);
printf("%lld\n", ans+(long long)n*(long long)(n-1)*(long long)m*(long long)(m-1)/4);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}