結果
問題 | No.2708 Jewel holder |
ユーザー | 259-Momone |
提出日時 | 2024-11-01 20:46:52 |
言語 | C++23 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,389 bytes |
コンパイル時間 | 3,791 ms |
コンパイル使用メモリ | 320,836 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-01 20:46:57 |
合計ジャッジ時間 | 4,993 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
6,820 KB |
testcase_01 | AC | 2 ms
6,816 KB |
testcase_02 | AC | 2 ms
6,816 KB |
testcase_03 | AC | 2 ms
6,816 KB |
testcase_04 | AC | 2 ms
6,816 KB |
testcase_05 | AC | 2 ms
6,816 KB |
testcase_06 | AC | 2 ms
6,816 KB |
testcase_07 | AC | 3 ms
6,820 KB |
testcase_08 | AC | 2 ms
6,816 KB |
testcase_09 | AC | 3 ms
6,816 KB |
testcase_10 | AC | 2 ms
6,816 KB |
testcase_11 | AC | 2 ms
6,816 KB |
testcase_12 | AC | 2 ms
6,820 KB |
testcase_13 | AC | 2 ms
6,820 KB |
testcase_14 | AC | 2 ms
6,816 KB |
testcase_15 | AC | 2 ms
6,816 KB |
testcase_16 | AC | 2 ms
6,820 KB |
testcase_17 | AC | 3 ms
6,816 KB |
testcase_18 | AC | 2 ms
6,816 KB |
testcase_19 | AC | 2 ms
6,816 KB |
ソースコード
#include <bits/extc++.h> int main() { using namespace std; unsigned H, W; cin >> H >> W; enum class state { plus, minus, stop }; vector field(H, vector<state>(W)); for (auto &row : field) for (auto &cell : row) { char c; cin >> c; cell = c == 'o' ? state::plus : c == 'x' ? state::minus : state::stop; } unsigned possible_roots{}; for (unsigned i{}; i < (1U << H - 1) << (W - 1); ++i) if (popcount(i) == H - 1) possible_roots += [&]() -> int { unsigned now_jewels{}, x{}, y{}; for (unsigned j{}; j < H + W - 2; ++j) { if (field[x][y] == state::plus) ++now_jewels; if (field[x][y] == state::minus) { if (now_jewels == 0) return 0; --now_jewels; } if (field[x][y] == state::stop) return 0; ++(i >> j & 1 ? x : y); } if (field.back().back() == state::plus) return 1; return now_jewels != 0; }(); cout << possible_roots << '\n'; return 0; }