Pagini recente » Cod sursa (job #1416196) | Cod sursa (job #924590) | Cod sursa (job #1978727) | Cod sursa (job #72773) | Cod sursa (job #877666)
Cod sursa(job #877666)
#include <cstdio>
#include <cmath>
#include <fstream>
using namespace std;
int n,m,R[160001];
long long SOL;
void READ ()
{
ifstream in ("dreptunghiuri.in");
in>>n>>m;
}
void SOLVE ()
{
for( int i=1 ; i <= n ; ++i )
R[i*i]=i;
int S,B,C,X1,X2,D;
for( int i=1 ; i <= n ; ++i )
for( int j=1 ; j <= m ; ++j )
{
S=0;
for( int k=0 ; k < i ; ++k )
{
B=-j;
C=k*(i-k);
D=B*B-4*C;
if( D < 0 || !R[D] )
continue;
X1=(-B+R[D]);
X2=(-B-R[D]);
if( X1&1 )
continue;
X1>>=1;
X2>>=1;
if( 0 <= X1 && X1 < j )
++S;
if( 0 <= X2 && X2 < j && X1 != X2 )
++S;
}
SOL+=(1LL*(n-i)*(m-j)*S);
}
}
void OUT ()
{
freopen ("dreptunghiuri.out","w",stdout);
printf("%lld\n",SOL);
}
int main ()
{
READ ();
SOLVE ();
OUT ();
return 0;
}