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 summary = p.iter().sum::(); let mut revmap = vec![0usize; n]; let mut result = 0usize; for i in 0..n { revmap[p[i]-1] = i+1; } for i in (0..n).rev() { if summary >= revmap[i] * 2 { result = result.max(summary - 2 * revmap[i]); } summary -= revmap[i]; } println!("{}", result); }