fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut p = String::new(); std::io::stdin().read_line(&mut p).ok(); let p: Vec = p.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut result = 0usize; let mut exp = p.iter().sum::(); let mut scores = vec![0usize; n]; for i in 0..n { scores[p[i]-1] = i+1; } for i in (0..n).rev() { if exp > 2*scores[i] { result = result.max(exp - 2*scores[i]); } exp -= scores[i]; } println!("{}", result); }