結果
問題 |
No.2865 Base 10 Subsets 2
|
ユーザー |
|
提出日時 | 2024-08-30 22:43:05 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,065 bytes |
コンパイル時間 | 1,876 ms |
コンパイル使用メモリ | 148,804 KB |
実行使用メモリ | 13,760 KB |
最終ジャッジ日時 | 2024-08-30 22:43:11 |
合計ジャッジ時間 | 5,404 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 1 TLE * 1 -- * 10 |
ソースコード
#pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #ifdef local #include <C++/core/io/debug_print.hpp> #else #define dump(...) void(0); #endif #include <iostream> #include <valarray> #include <ranges> namespace man { } int main() { std::cin.tie(nullptr) -> sync_with_stdio(false); std::string n; int64_t k, c = 0; std::cin >> n >> k; const int m = n.size(); std::valarray<int> v(m); for(const auto &i: std::views::iota(0, m)) { v[i] = n[i] - '0'; } const auto vtoi = [](const std::valarray<int> &v) -> int64_t { int64_t x = 0; for(const auto &e: v) { x += e; x *= 10; } x /= 10; return x; }; const auto rec = [&](const auto &f, const int d) -> void { if(d == m) { if(++c == k) { std::cout << vtoi(v) << '\n'; } return; } for(const auto &i: std::views::iota(0, v[d] + 1)) { v[d] = i; f(f, d + 1); } }; rec(rec, 0); }