fn main() { let mut xx = String::new(); std::io::Read::read_to_string(&mut std::io::stdin(), &mut xx).ok(); let xx: Vec = xx.split_whitespace().skip(1).flat_map(str::parse).collect(); let n = xx.len() / 2; let diff: Vec = xx.chunks(2).map(|x| x[0] - x[1]).collect(); let mut left = vec![0; n + 1]; let mut right = vec![0; n + 1]; left[1] = diff[0]; right[n - 1] = -diff[n - 1]; for i in 2..=n { left[i] = left[i - 1] + diff[i - 1]; right[n - i] = right[n - i + 1] - diff[n - i]; } let answer = (0..=n).map(|i| left[i] + right[i]).max().unwrap(); println!("{answer}"); }