Pagini recente » Cod sursa (job #1981621) | Cod sursa (job #813309) | Cod sursa (job #2711407) | Cod sursa (job #2360402) | Cod sursa (job #470203)
Cod sursa(job #470203)
#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 1111
int n,m;
int Sqrt[nmax*nmax];
void citire()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &n, &m);
}
int numara(int h, int w)
{
int ans=0,i,delta;
int 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,ans;
for (i=0;i<=1000;++i)
Sqrt[i*i]=1;
ans=0;
for (i=3;i<=n;++i)
for (j=3;j<=m;++j)
ans+=numara(i,j);
printf("%d\n", ans+n*(n-1)*m*(m-1)/4);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}