結果
問題 |
No.1593 Perfect Distance
|
ユーザー |
|
提出日時 | 2021-07-11 16:42:44 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 89 ms / 2,000 ms |
コード長 | 1,048 bytes |
コンパイル時間 | 1,906 ms |
コンパイル使用メモリ | 172,648 KB |
実行使用メモリ | 12,800 KB |
最終ジャッジ日時 | 2024-07-02 03:07:20 |
合計ジャッジ時間 | 2,519 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
// 問題の URL を書いておく // #include <bits/stdc++.h> using namespace std; //#define ENABLE_PRINT #if defined(ENABLE_PRINT) #define Print(v) \ do {\ cerr << #v << ": " << v << endl; \ }while(0) #define PrintVec(v) \ do {\ for(int __i = 0; __i < v.size(); ++__i) \ { \ cerr << #v << "[" << __i << "]: " << v[__i] << endl; \ }\ }while(0) #define P(fmt, ...) fprintf(stderr, fmt, __VA_ARGS__) #define LP fprintf(stderr, "L: %d\n", __LINE__) #else #define Print(v) ((void)0) #define PrintVec(v) ((void)0) #define P(fmt, ...) ((void)0) #define LP ((void)0) #endif #define rep(i, n) for(int i = 0; i < (int)(n); ++i) using ll = long long; int main(int, const char**) { ll N; cin >> N; auto X = N * N; set<ll> sq; rep(i, N - 1) { auto x = (ll)i + 1; sq.insert(x * x); } int ans = 0; for(ll i = 1; i <= N; ++i) { auto b = (X - i * i); if(sq.find(b) == sq.end()) continue; ans++; } cout << ans << endl; return 0; }