結果
問題 | No.927 Second Permutation |
ユーザー |
![]() |
提出日時 | 2022-12-18 00:08:04 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 898 bytes |
コンパイル時間 | 29,749 ms |
コンパイル使用メモリ | 396,364 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-17 08:10:22 |
合計ジャッジ時間 | 15,095 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
fn main() {let mut x = String::new();std::io::stdin().read_line(&mut x).ok();let x = x.trim();let mut count = vec![0; 10];for c in x.chars() {let i = c as usize - '0' as usize;count[i] += 1;}if count.iter().filter(|&&n| n > 0).count() == 1 || count[0] == x.len() - 1 {println!("-1");} else {let chars: Vec<char> = (0..=9).map(|n| char::from_digit(n, 10).unwrap()).collect();let mut answer = vec![];for (i, &c) in count.iter().enumerate().rev() {answer.extend(vec![chars[i]; c]);}let last = answer[answer.len() - 1];let i = answer.iter().rposition(|&n| n != last).unwrap();let j = answer.iter().position(|&n| n == last).unwrap();answer.swap(i, j);let answer: String = answer.iter().collect();println!("{answer}");}}