#include #define rep(i,n) for(ll i=0, i##_len=(n); ibool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> N >> D; ll MAX = 1e7; ll ans = 0; vector count1(MAX); vector count2(MAX); REP(i,1,N+1)REP(j,1,N+1){ ll temp1 = i*i+j*j; ll temp2 = i*i-j*j+D; count1[temp1]++; if(temp2<=0)continue; count2[temp2]++; } rep(i,MAX){ ans += count1[i]*count2[i]; } cout << ans << endl; return 0; }