結果
| 問題 |
No.3 ビットすごろく
|
| コンテスト | |
| ユーザー |
bubo
|
| 提出日時 | 2018-03-04 22:41:31 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 716 bytes |
| コンパイル時間 | 14,373 ms |
| コンパイル使用メモリ | 386,420 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-07-16 04:16:47 |
| 合計ジャッジ時間 | 15,799 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 14 WA * 19 |
ソースコード
fn movable(x: usize) -> usize {
let s: String = format!("{:b}", x);
s.chars().filter(|&c| c == '1').count()
}
fn run(xs: &mut [i32], idx: usize, val: i32) {
if idx < 1 || idx > xs.len() - 1 {
return;
}
if xs[idx] != -1 {
return;
}
xs[idx] = val;
let (left, right) = {
let m = movable(idx);
(idx - m, idx + m)
};
run(xs, left, val + 1);
run(xs, right, val + 1);
}
use std::io::stdin;
pub fn main() {
let n: usize = {
let mut s = String::new();
let _ = stdin().read_line(&mut s);
s.trim().parse().unwrap()
};
let mut trout = vec![-1; n + 1];
run(&mut trout, 1, 1);
println!("{}", trout[n]);
}
bubo