結果
| 問題 |
No.2411 Reverse Directions
|
| コンテスト | |
| ユーザー |
tails
|
| 提出日時 | 2023-08-11 23:08:15 |
| 言語 | cLay (20241019-1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,515 bytes |
| コンパイル時間 | 3,764 ms |
| コンパイル使用メモリ | 177,456 KB |
| 実行使用メモリ | 19,892 KB |
| 最終ジャッジ日時 | 2024-11-18 18:25:45 |
| 合計ジャッジ時間 | 15,692 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 15 WA * 11 TLE * 3 |
ソースコード
ll h,w,k,l,r;
char s[512][512];
char z[3d5];
ll d[512][512];
ll q[1d6];
void f(ll sy,ll sx){
d[sy][sx]=1;
ll i=0,j=0;
q[j++]=sy;
q[j++]=sx;
while(i<j){
ll y=q[i++];
ll x=q[i++];
rep(a,4){
ll y2=y-(a==0)+(a==1);
ll x2=x-(a==2)+(a==3);
if(y2>=0&&y2<h&&x2>=0&&x2<w&&s[y2][x2]=='.'&&!d[y2][x2]){
d[y2][x2]=d[y][x]+1;
q[j++]=y2;
q[j++]=x2;
}
}
}
}
{
rd(h,w,k,l,r,s(h));
f(h-1,w-1);
if(r-l+1&1||h+w+k&1||!d[0][0]){
wt("No");
exit(0);
}
rep(y,h){
rep(x,w){
if(x+y+l&1&&d[y][x]&&d[0][0]-d[y][x]<=l-1&&d[y][x]-d[h-1][w-1]<=k-r&&(y>0&&y<h-1&&d[y-1][x]&&d[y+1][x]||x>0&&x<w-1&&d[y][x-1]&&d[y][x+1])){
ll p=r;
ll y2=y;
ll x2=x;
while(!(y2==h-1&&x2==w-1)){
rep(a,4){
ll y3=y2-(a==0)+(a==1);
ll x3=x2-(a==2)+(a==3);
if(y3>=0&&y3<h&&x3>=0&&x3<w&&d[y3][x3]==d[y2][x2]-1){
y2=y3;
x2=x3;
z[p++]="UDLR"[a];
break;
}
}
}
p=l-1;
if(y>0&&y<h-1&&d[y-1][x]&&d[y+1][x]){
rep(r-l+1>>1){
z[p++]='D';
z[p++]='U';
}
}else{
rep(r-l+1>>1){
z[p++]='R';
z[p++]='L';
}
}
d[0...511][0..511]=0;
f(y,x);
p=0;
y2=0;
x2=0;
while(!(y2==y&&x2==x)){
rep(a,4){
ll y3=y2-(a==0)+(a==1);
ll x3=x2-(a==2)+(a==3);
if(y3>=0&&y3<h&&x3>=0&&x3<w&&d[y3][x3]==d[y2][x2]-1){
y2=y3;
x2=x3;
z[p++]="UDLR"[a];
break;
}
}
}
wt("Yes");
wt(z);
exit(0);
}
}
}
wt("No");
}
tails