fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut a = String::new(); std::io::stdin().read_line(&mut a).ok(); let mut a: Vec = a.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut result: Vec<(usize, usize)> = vec![]; for i in 0..n { for j in i..n { if a[i] > a[j] { a.swap(i, j); result.push((i, j)); } } } println!("{}", result.len()); result.iter().for_each(|pair| println!("{} {}", pair.0, pair.1)); let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); }