#pragma GCC optimize ("O3")
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define per(i, a, b) for (int i = (b); i >= (a); i--)
#define SZ(x) ((int)x.size())
#define all(x) x.begin(), x.end()
#define pb push_back
#define mp make_pair
#define st first
#define nd second
using ll = long long;
using lf = long double;
using pii = pair <int,int>;
using pll = pair<ll, ll>;
auto& operator<<(auto& o, pair<auto, auto> p) {
return o << "(" << p.first << ", " << p.second << ")";
}
auto operator<<(auto& o, auto x)->decltype(end(x), o) {
o << "{"; int i = 0; for (auto e: x) o << ", " + 2*!i++ << e;
return o << "}";
}
#define dbg(x...) cerr<<"["#x"]: ", [](auto...$) {((cerr << $ << "; "),...)<<endl;}(x)
const int mxN = 5007;
int cnt[2*mxN*mxN];
int32_t main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n; cin >> n;
int res = 0;
rep(a,1,n) rep(b,a,n) cnt[a*a + b*b]++;
rep(i,1,n) rep(h,1,i-1) res += cnt[i*i - h*h];
cout << res << "\n";
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #pragma GCC optimize ("O3") #include <bits/stdc++.h> using namespace std; #define int long long #define rep(i, a, b) for (int i = (a); i <= (b); i++) #define per(i, a, b) for (int i = (b); i >= (a); i--) #define SZ(x) ((int)x.size()) #define all(x) x.begin(), x.end() #define pb push_back #define mp make_pair #define st first #define nd second using ll = long long; using lf = long double; using pii = pair <int,int>; using pll = pair<ll, ll>; auto& operator<<(auto& o, pair<auto, auto> p) { return o << "(" << p.first << ", " << p.second << ")"; } auto operator<<(auto& o, auto x)->decltype(end(x), o) { o << "{"; int i = 0; for (auto e: x) o << ", " + 2*!i++ << e; return o << "}"; } #define dbg(x...) cerr<<"["#x"]: ", [](auto...$) {((cerr << $ << "; "),...)<<endl;}(x) const int mxN = 5007; int cnt[2*mxN*mxN]; int32_t main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; int res = 0; rep(a,1,n) rep(b,a,n) cnt[a*a + b*b]++; rep(i,1,n) rep(h,1,i-1) res += cnt[i*i - h*h]; cout << res << "\n"; } |
English