Pagini recente » Cod sursa (job #2828832) | Cod sursa (job #1721357) | Cod sursa (job #2214778) | Cod sursa (job #2820947) | Cod sursa (job #2282591)
#include <bits/stdc++.h>
using namespace std;
int n,m,usu[1000003];
long long sol;
ifstream f ("dreptunghiuri.in");
ofstream g ("dreptunghiuri.out");
int calc(int i,int j)
{
int rez=0,t,x;
for(int k=1;k<j;++k)
{
t=i*i-4*k*(j-k);
if(t<0) continue;
t=usu[t];
if(t>=0&&((i+t)&1)==0)
{
x=(i+t)>>1;
if(x>0&&x<i) ++rez;
if(!t) continue;
x=(i-t)>>1;
if (x>0&&x<i) ++rez;
}
}
return rez;
}
int main()
{
f>>n>>m;
sol=1ll*n*(n-1)*m*(m-1)/4;
memset(usu,-1,sizeof(usu));
for(int i=0;i*i<1000000;++i) usu[i*i]=i;
for(int i=2;i<n;++i)
{
for(int j=2;j<m;++j) sol+=1ll*calc(i,j)*(n-i)*(m-j);
}
g<<sol;
return 0;
}