結果
問題 | No.659 徘徊迷路 |
ユーザー | tails |
提出日時 | 2018-03-02 23:40:54 |
言語 | C (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 54 ms / 2,000 ms |
コード長 | 1,336 bytes |
コンパイル時間 | 1,125 ms |
コンパイル使用メモリ | 31,356 KB |
実行使用メモリ | 4,380 KB |
最終ジャッジ日時 | 2023-09-04 15:23:04 |
合計ジャッジ時間 | 2,061 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge11 |
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
4,376 KB |
testcase_01 | AC | 11 ms
4,380 KB |
testcase_02 | AC | 1 ms
4,376 KB |
testcase_03 | AC | 1 ms
4,380 KB |
testcase_04 | AC | 17 ms
4,376 KB |
testcase_05 | AC | 1 ms
4,380 KB |
testcase_06 | AC | 1 ms
4,376 KB |
testcase_07 | AC | 1 ms
4,376 KB |
testcase_08 | AC | 19 ms
4,380 KB |
testcase_09 | AC | 46 ms
4,380 KB |
testcase_10 | AC | 53 ms
4,376 KB |
testcase_11 | AC | 53 ms
4,380 KB |
testcase_12 | AC | 9 ms
4,380 KB |
testcase_13 | AC | 46 ms
4,376 KB |
testcase_14 | AC | 46 ms
4,376 KB |
testcase_15 | AC | 54 ms
4,380 KB |
testcase_16 | AC | 54 ms
4,380 KB |
コンパイルメッセージ
main.c:1:1: 警告: データ定義が型または記憶域クラスを持っていません 1 | r;c;long long t; | ^ main.c:1:1: 警告: 型がデフォルトの ‘int’ に ‘r’ の宣言内でなります [-Wimplicit-int] main.c:1:3: 警告: データ定義が型または記憶域クラスを持っていません 1 | r;c;long long t; | ^ main.c:1:3: 警告: 型がデフォルトの ‘int’ に ‘c’ の宣言内でなります [-Wimplicit-int] main.c:2:1: 警告: データ定義が型または記憶域クラスを持っていません 2 | sy;sx; | ^~ main.c:2:1: 警告: 型がデフォルトの ‘int’ に ‘sy’ の宣言内でなります [-Wimplicit-int] main.c:2:4: 警告: データ定義が型または記憶域クラスを持っていません 2 | sy;sx; | ^~ main.c:2:4: 警告: 型がデフォルトの ‘int’ に ‘sx’ の宣言内でなります [-Wimplicit-int] main.c:3:1: 警告: データ定義が型または記憶域クラスを持っていません 3 | gy;gx; | ^~ main.c:3:1: 警告: 型がデフォルトの ‘int’ に ‘gy’ の宣言内でなります [-Wimplicit-int] main.c:3:4: 警告: データ定義が型または記憶域クラスを持っていません 3 | gy;gx; | ^~ main.c:3:4: 警告: 型がデフォルトの ‘int’ に ‘gx’ の宣言内でなります [-Wimplicit-int] main.c:8:1: 警告: データ定義が型または記憶域クラスを持っていません 8 | y;x;v;u;j;i; | ^ main.c:8:1: 警告: 型がデフォルトの ‘int’ に ‘y’ の宣言内でなります [-Wimplicit-int] main.c:8:3: 警告: データ定義が型または記憶域クラスを持っていません 8 | y;x;v;u;j;i; | ^ main.c:8:3: 警告: 型がデフォルトの ‘int’ に ‘x’ の宣言内でなります [-Wimplicit-int] main.c:8:5: 警告: データ定義が型または記憶域クラスを持っていません 8 | y;x;v;u;j
ソースコード
r;c;long long t; sy;sx; gy;gx; char b[12][12]; double m[12][12][12][12]; double n[12][12][12][12]; double e[12][12][12][12]; y;x;v;u;j;i; f(long long l){ if(l>1){ f(l>>1); memcpy(n,m,sizeof m); for(y=0;y<r;++y){ for(x=0;x<c;++x){ for(v=0;v<r;++v){ for(u=0;u<c;++u){ m[y][x][v][u]=0; for(j=0;j<r;++j){ for(i=0;i<c;++i){ m[y][x][v][u]+=n[y][x][j][i]*n[j][i][v][u]; } } } } } } } if(l&1){ memcpy(n,m,sizeof m); for(y=0;y<r;++y){ for(x=0;x<c;++x){ for(v=0;v<r;++v){ for(u=0;u<c;++u){ m[y][x][v][u]=0; for(j=0;j<r;++j){ for(i=0;i<c;++i){ m[y][x][v][u]+=n[y][x][j][i]*e[j][i][v][u]; } } } } } } } } main(){ scanf("%d%d%lld ",&r,&c,&t); scanf("%d%d ",&sy,&sx); scanf("%d%d ",&gy,&gx); for(y=0;y<r;++y){ gets(b[y]); } for(y=1;y<r-1;++y){ for(x=1;x<c-1;++x){ int k=0; if(b[y-1][x]=='.') ++k; if(b[y+1][x]=='.') ++k; if(b[y][x-1]=='.') ++k; if(b[y][x+1]=='.') ++k; if(k){ double p=1./k; if(b[y-1][x]=='.') e[y][x][y-1][x]=p; if(b[y+1][x]=='.') e[y][x][y+1][x]=p; if(b[y][x-1]=='.') e[y][x][y][x-1]=p; if(b[y][x+1]=='.') e[y][x][y][x+1]=p; }else{ e[y][x][y][x]=1; } m[y][x][y][x]=1; } } f(t); printf("%.9f\n",m[sy][sx][gy][gx]); }