算法
(暴力枚举) $O(N^2D)$
由于 $N$ 和 $D$ 的数据范围都很小,所以直接暴力枚举即可
C++ 代码
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using std::cin;
using std::cout;
using std::vector;
int main() {
int n, d;
cin >> n >> d;
vector<vector<int>> x(n, vector<int>(d));
rep(i, n) {
rep(j, d) cin >> x[i][j];
}
int ans = 0;
rep(i, n)rep(j, i) { // j < i
int sq = 0;
rep(k, d) {
int s = x[i][k] - x[j][k];
sq += s * s;
}
int s = sqrt(sq) + 0.5;
if (s * s == sq) ans++;
}
cout << ans << '\n';
return 0;
}