結果
問題 |
No.1013 〇マス進む
|
ユーザー |
|
提出日時 | 2023-01-20 23:27:54 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 223 ms / 2,000 ms |
コード長 | 982 bytes |
コンパイル時間 | 22,646 ms |
コンパイル使用メモリ | 398,304 KB |
実行使用メモリ | 29,184 KB |
最終ジャッジ日時 | 2024-06-23 11:28:04 |
合計ジャッジ時間 | 32,482 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 62 |
ソースコード
fn main() { let mut nk = String::new(); std::io::stdin().read_line(&mut nk).ok(); let nk: Vec<usize> = nk.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n = nk[0]; let k = nk[1]; let mut p = String::new(); std::io::stdin().read_line(&mut p).ok(); let p: Vec<usize> = p.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut addval = vec![vec![0usize; n]; 32]; for i in 0..n { addval[0][i] = p[i]; } for i in 0..=30 { for j in 0..n { addval[i+1][j] = addval[i][j] + addval[i][(j+addval[i][j])%n]; } } let mut result = vec![0usize; n]; for i in 0..n { let mut idx = i; for j in 0..=31 { if ((k >> j) & 1) == 1 { result[i] += addval[j][idx]; idx += addval[j][idx]; idx %= n; } } } for i in 0..n { println!("{}", result[i]+i+1); } }