Pagini recente » Cod sursa (job #522921) | Cod sursa (job #3257973) | Cod sursa (job #2505568) | Cod sursa (job #2529690) | Cod sursa (job #470207)
Cod sursa(job #470207)
#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)-4*(h-i)*(i-1);
if (Sqrt[delta] && delta>=0)
{
if ((w-1)*(w-1)==4*(h-i)*(i-1))//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;
}