結果
問題 |
No.3257 +|+
|
ユーザー |
![]() |
提出日時 | 2025-09-05 23:16:38 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,372 bytes |
コンパイル時間 | 3,413 ms |
コンパイル使用メモリ | 286,424 KB |
実行使用メモリ | 22,052 KB |
最終ジャッジ日時 | 2025-09-05 23:16:46 |
合計ジャッジ時間 | 8,279 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 4 TLE * 1 -- * 28 |
ソースコード
#include <bits/stdc++.h> // python->C++翻訳 using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; if (!(cin >> N)) return 0; vector<long long> A(N); for (int i = 0; i < N; ++i) cin >> A[i]; // n = isqrt(4 * 10**5) const long long n = (long long)floor(sqrt(400000.0L)); long long ans = 0; // d : defaultdict(int) unordered_map<long long, long long> d; d.reserve((size_t)N * 2); d.max_load_factor(0.7f); // for ni in range(1, n+1): for (long long ni = 1; ni <= n; ++ni) { // for j in range(N): for (int j = 0; j < N; ++j) { long long key = A[j] - (long long)(j + 1) * ni; long long need = -key; // -(A[j] - (j+1)*ni) auto it = d.find(need); if (it != d.end()) ans += it->second; d[key] += 1; } d.clear(); } // for ij in range(1, n+1): for (long long ij = 1; ij <= n; ++ij) { for (int j = 0; j < N; ++j) { long long i = ij - j - 2; // i = ij-j-2 if (0 <= i && i < j && j < N) { long long s = A[(int)i] + A[j]; if (s % ij == 0) { long long ni = s / ij; if (ni > n) ans += 1; } } } } cout << ans << '\n'; return 0; }