結果
問題 | No.2708 Jewel holder |
ユーザー |
![]() |
提出日時 | 2024-03-31 13:43:07 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 861 bytes |
コンパイル時間 | 3,930 ms |
コンパイル使用メモリ | 232,052 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-09-30 18:17:16 |
合計ジャッジ時間 | 4,811 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#include <bits/stdc++.h> #define rep(i,n) for(ll i=0;i<(ll)(n);i++) #define all(x) x.begin(), x.end() using namespace std; using ll=long long; using ld=long double; using P=pair<ll,ll>; #include <atcoder/all> using namespace atcoder; //using mint=static_modint<998244353>; using mint=static_modint<1000000007>; int h,w; int main(){ cin>>h>>w; vector<int> p(h+w-2,1); vector<vector<char>> a(h,vector<char>(w)); rep(i,h)rep(j,w)cin>>a[i][j]; rep(i,w-1)p[i]=0; int ans=0; do{ bool ok=true; int x=0,y=0; int cru=1; rep(i,h+w-2){ if(p[i]==1)x++; else y++; if(a[x][y]=='#')ok=false; if(a[x][y]=='x')cru--; if(a[x][y]=='o')cru++; if(cru<0)ok=false; } if(ok)ans++; }while(next_permutation(all(p))); cout<<ans<<endl; }