Я пытаюсь решить вопрос алгоритма Rust на hackerrank. Мой ответ истекает на некоторых более крупных тестах. Есть около 5 человек, которые завершили его, поэтому я считаю, что это возможно, и я предполагаю, что они скомпилируются в режиме выпуска. Есть ли ускорения, которых я не хватает?Speedup counter game
Суть игры - счетчик (inp in main) условно снижен и основан на том, кто больше не может его уменьшить, выбирается победитель.
use std::io;
fn main() {
let n: usize = read_one_line().
trim().parse().unwrap();
for _i in 0..n{
let inp: u64 = read_one_line().
trim().parse().unwrap();
println!("{:?}", find_winner(inp));
}
return;
}
fn find_winner(mut n: u64) -> String{
let mut win = 0;
while n>1{
if n.is_power_of_two(){
n /= 2;
}
else{
n -= n.next_power_of_two()/2;
}
win += 1;
}
let winner =
if win % 2 == 0{
String::from("Richard")
} else{
String::from("Louise")
};
winner
}
fn read_one_line() -> String{
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read");
input
}
Не могли бы вы привести соответствующие разделы описания проблемы HR или добавить ссылку? – Zeta