結果
問題 |
No.3156 Count That Day's N
|
ユーザー |
|
提出日時 | 2025-05-23 19:17:19 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,402 bytes |
コンパイル時間 | 2,180 ms |
コンパイル使用メモリ | 202,164 KB |
実行使用メモリ | 552,408 KB |
最終ジャッジ日時 | 2025-05-23 19:17:50 |
合計ジャッジ時間 | 14,327 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 TLE * 1 MLE * 1 -- * 1 |
other | -- * 32 |
ソースコード
// using chatgpt only translate /* K,N = map(int, input().split()) s = set([]) for i in range(1,10**8): if K * i * i <= 10**15: s.add(K*i*i) else: break ans = 0 t = set([]) for x in range(1,1001): for y in range(1,10**4): if x**6 + y**4 > N: break if x**6 + y**4 in s: t.add(x**6+y**4) print(len(t)) */ #include <bits/stdc++.h> using namespace std; using int64 = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int64 K, N; cin >> K >> N; unordered_set<int64> s; s.reserve(1000000); for (int64 i = 1; ; ++i) { __int128 v = (__int128)K * i * i; if (v <= (__int128)1'000'000'000'000'000LL) { s.insert((int64)v); } else { break; } } unordered_set<int64> t; t.reserve(100000); for (int x = 1; x <= 1000; ++x) { // compute x^6 int64 x6 = 1; for (int i = 0; i < 6; ++i) { x6 *= x; } for (int y = 1; y <= 10000; ++y) { // compute y^4 int64 y4 = 1; for (int i = 0; i < 4; ++i) { y4 *= y; } int64 sum = x6 + y4; if (sum > N) break; if (s.count(sum)) { t.insert(sum); } } } cout << t.size() << "\n"; return 0; }