use std::collections::{BTreeSet, HashMap, HashSet, VecDeque}; use proconio::marker::Chars; fn main() { proconio::input! { n: usize, a: [usize; n], } let mut a = VecDeque::from(a); a.iter_mut().for_each(|x| *x -= 1); for i in 0.. { while a[a.len() - 1] == a.len() - 1 { a.pop_back(); if a.is_empty() { println!("{}", i); return; } } let max_index = a.iter().enumerate().max_by_key(|x| x.1).unwrap().0; let index = a .iter() .enumerate() .skip(max_index + 1) .max_by_key(|x| x.1) .unwrap() .0; eprintln!("{} {}", max_index, index); let value = a[index]; a.remove(index); a.push_front(value); eprintln!("{a:?}"); } }