#[no_mangle] fn get_reversals_to_sort(arr: &[i32]) -> Vec { let mut intermediate: Vec = arr.into(); let mut ret: Vec = Vec::new(); for i in (2..=intermediate.len()).rev() { let max = intermediate[0..i].iter().max().unwrap(); let found = intermediate[0..i].iter().position(|e| e == max).unwrap(); let first_swap = found + 1; let second_swap = i; if first_swap != second_swap { if first_swap > 1 { ret.push(first_swap); intermediate[0..first_swap].reverse(); } ret.push(second_swap); intermediate[0..second_swap].reverse(); } } ret } pub fn main() { let vals = include!("inp.txt"); //[12, 13, 11, 14]; let vals = Vec::from(vals); let show = get_reversals_to_sort(&vals); //println!("{:?}", show); }