結果
| 問題 |
No.2766 Delicious Multiply Spice
|
| コンテスト | |
| ユーザー |
well-defined
|
| 提出日時 | 2024-09-15 14:13:15 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 2,000 ms |
| コード長 | 989 bytes |
| コンパイル時間 | 14,670 ms |
| コンパイル使用メモリ | 378,400 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-15 14:13:31 |
| 合計ジャッジ時間 | 15,430 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 8 |
| other | AC * 31 |
ソースコード
use proconio::input;
fn dfs (n: u128, ans: &mut Vec<char>) -> u128{
//println!("now: {}, {:?}", n, ans);
if n <= 1 { return n; }
if (n-1) % 2 != 0 && (n-1) % 3 != 0 { return n; }
if (n-1)%2 != 0 {
ans.push('B');
let m = dfs((n-1)/3, ans);
if m == 1 {return m;}
ans.pop();
}
else if (n-1)%3 != 0 {
ans.push('A');
let m = dfs((n-1)/2, ans);
if m == 1 {return m;}
ans.pop();
}
else {
ans.push('A');
let m = dfs((n-1)/2, ans);
if m == 1 {return m;}
//println!("{} {}", m, n);
ans.pop();
ans.push('B');
let m = dfs((n-1)/3, ans);
if m == 1 {return m;}
ans.pop();
}
n
}
fn main () {
input! {
mut n: u128,
}
let mut ans: Vec<char> = Vec::new();
dfs(n, &mut ans);
let s = ans.iter()
.rev()
.map(|&c| c.to_string())
.collect::<String>();
println!("{}", s);
}
well-defined