結果
問題 | No.2238 Rock and Hole |
ユーザー |
![]() |
提出日時 | 2023-03-03 22:29:43 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 37 ms / 3,000 ms |
コード長 | 770 bytes |
コンパイル時間 | 4,103 ms |
コンパイル使用メモリ | 180,852 KB |
実行使用メモリ | 18,632 KB |
最終ジャッジ日時 | 2024-09-17 23:30:39 |
合計ジャッジ時間 | 5,224 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 24 |
ソースコード
ll@h,@w,n=0; string@s[h]; maxflow<int,int>f; f.malloc(h*w+2,1); rep(y,h){ int r=-1; rep(x,w){ int c=s[y][x]; if(c=='h'){ f.addEdge(h*w,y*w+x,1,0); r=x; } if(c=='r'){ ++n; f.addEdge(y*w+x,h*w+1,1,0); if(r>=0){ f.addEdge(y*w+r,y*w+x,1,0); } } } } rep(y,h){ int r=-1; rrep(x,w){ int c=s[y][x]; if(c=='h'){ r=x; } if(c=='r'){ if(r>=0){ f.addEdge(y*w+r,y*w+x,1,0); } } } } rep(x,w){ int r=-1; rep(y,h){ int c=s[y][x]; if(c=='h'){ r=y; } if(c=='r'){ if(r>=0){ f.addEdge(r*w+x,y*w+x,1,0); } } } } rep(x,w){ int r=-1; rrep(y,h){ int c=s[y][x]; if(c=='h'){ r=y; } if(c=='r'){ if(r>=0){ f.addEdge(r*w+x,y*w+x,1,0); } } } } wt(f.solve(h*w,h*w+1)==n?"Yes":"No");