結果
| 問題 |
No.2238 Rock and Hole
|
| コンテスト | |
| ユーザー |
tails
|
| 提出日時 | 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");
tails