結果
問題 | No.2708 Jewel holder |
ユーザー | rurun |
提出日時 | 2024-03-31 13:58:03 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 791 bytes |
コンパイル時間 | 2,046 ms |
コンパイル使用メモリ | 202,768 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-09-30 18:42:25 |
合計ジャッジ時間 | 2,689 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#include <bits/stdc++.h> using namespace std; using lint = long long; int main() { int h, w; cin >> h >> w; int n = h+w-2; vector<string> vec(h); for (int i = 0; i < h; i++) cin >> vec[i]; int ans = 0; for (int i = 0; i < (1<<n); i++) { int now = 1; bool flag = true; int x = 0, y = 0; for (int j = 0; j < n; j++) { int a = (i&(1<<j)); if (a != 0) x++; else y++; if (x >= h || y >= w) { flag = false; break; } if (vec[x][y] == 'o') now++; else if (vec[x][y] == 'x') { now--; if (now == -1) { flag = false; break; } } else if (vec[x][y] == '#') { flag = false; break; } } if (flag) ans++; } cout << ans << endl; }