結果
問題 |
No.2708 Jewel holder
|
ユーザー |
![]() |
提出日時 | 2024-03-31 21:23:45 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 1,381 bytes |
コンパイル時間 | 2,195 ms |
コンパイル使用メモリ | 199,812 KB |
最終ジャッジ日時 | 2025-02-20 18:23:34 |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { int h, w; cin >> h >> w; vector<vector<char>> a(h, vector<char>(w)); for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { cin >> a[i][j]; } } vector<char> v; for (int i = 0; i < h - 1; i++) { v.push_back('D'); } for (int i = 0; i < w - 1; i++) { v.push_back('R'); } int ans = 0; do { int i = 0, j = 0, now = 1; bool ok = true; for (char c : v) { if (c == 'D') { i++; if (a[i][j] == 'o') { now++; } else if (a[i][j] == 'x') { if (now == 0) { ok = false; } now--; } else { ok = false; } } else { j++; if (a[i][j] == 'o') { now++; } else if (a[i][j] == 'x') { if (now == 0) { ok = false; } now--; } else { ok = false; } } } if (ok) { ans++; } } while (next_permutation(v.begin(), v.end())); cout << ans << endl; }