結果
問題 |
No.2863 Base 10 Subsets 1
|
ユーザー |
|
提出日時 | 2024-08-30 22:06:58 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 99 ms / 2,000 ms |
コード長 | 1,045 bytes |
コンパイル時間 | 2,125 ms |
コンパイル使用メモリ | 144,664 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-07 16:21:48 |
合計ジャッジ時間 | 3,416 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 14 |
ソースコード
#pragma GCC optimize("O2") #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 a; int b; std::cin >> a >> b; const int n = a.size(); std::valarray<int> v(n); for(const auto &i: std::views::iota(0, n)) { v[i] = a[i] - '0'; } const auto vtoi = [](const std::valarray<int> &v) -> int { int64_t x = 0; for(const auto &e: v) { x += e; x *= 10; } x /= 10; return x; }; bool ok = false; const auto rec = [&](const auto &f, const int d) -> void { if(d == n) { dump(vtoi(v)); ok |= vtoi(v) == b; return; } for(const auto &i: std::views::iota(0, v[d] + 1)) { v[d] = i; f(f, d + 1); } }; rec(rec, 0); std::cout << (ok ? "Yes\n" : "No\n"); }