結果
| 問題 | No.1465 Archaea |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-02-01 18:11:06 |
| 言語 | Rust (1.92.0 + proconio + num + itertools) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 886 bytes |
| 記録 | |
| コンパイル時間 | 4,281 ms |
| コンパイル使用メモリ | 202,748 KB |
| 実行使用メモリ | 7,972 KB |
| 最終ジャッジ日時 | 2026-02-01 18:11:36 |
| 合計ジャッジ時間 | 6,225 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 20 |
ソースコード
fn main() {
let stdin = std::io::read_to_string(std::io::stdin()).unwrap();
let mut stdin = stdin.split_ascii_whitespace();
let n: usize = stdin.next().unwrap().parse().unwrap();
let k: u32 = stdin.next().unwrap().parse().unwrap();
println!("{}", output(solve(n, k)));
}
const fn prepare<const SIZE: usize>() -> [u8; SIZE] {
let mut dp = [u8::MAX; SIZE];
dp[1] = 0;
dp[2] = 1;
let mut i = 4;
while i < dp.len() {
if i & 1 == 0 && dp[i - 3] > dp[i >> 1] {
dp[i] = dp[i >> 1].saturating_add(1);
} else {
dp[i] = dp[i - 3].saturating_add(1);
}
i += 1;
}
dp
}
fn solve(n: usize, k: u32) -> bool {
const DP: [u8; 200_001] = prepare();
DP[n] <= k.min(127) as u8
}
fn output(ans: bool) -> &'static str {
match ans {
true => "YES",
false => "NO",
}
}