結果
問題 |
No.3156 Count That Day's N
|
ユーザー |
|
提出日時 | 2025-05-23 19:15:22 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 1,134 ms / 3,000 ms |
コード長 | 709 bytes |
コンパイル時間 | 2,356 ms |
コンパイル使用メモリ | 198,412 KB |
実行使用メモリ | 82,816 KB |
最終ジャッジ日時 | 2025-05-23 19:16:00 |
合計ジャッジ時間 | 25,133 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 32 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:39:18: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::set<long long int>::size_type’ {aka ‘long unsigned int’} [-Wformat=] 39 | printf("%d\n", ans.size()); | ~^ ~~~~~~~~~~ | | | | int std::set<long long int>::size_type {aka long unsigned int} | %ld
ソースコード
#include <bits/stdc++.h> using namespace std; typedef pair<int, int> pii; typedef long long ll; const int N = 2000086, MOD = 1e9 + 7, INF = 0x3f3f3f3f; ll res; int n, m, cnt, w[N]; int main() { ll n, k; cin >> k >> n; set<ll> st, g, t; for (int i = 1; ; i++) { if ((ll)i * i * i * i * i * i >= n) break; st.insert((ll)i * i * i * i * i * i); } for (int i = 1; ; i++) { if ((ll)i * i * i * i >= n) break; g.insert((ll)i * i * i * i); } set<ll> ans; for (auto u : st) for (auto v : g) { if (u + v <= n) t.insert(u + v); } ll x = 1, v = k; for (auto u : t) { while (v < u) { x++; v = x * x * k; } if (v == u) ans.insert(v); } printf("%d\n", ans.size()); return 0; }