#![allow(unused)] #![allow(non_snake_case)] #![allow(dead_code)] fn main() { let input_str = std::io::read_to_string(std::io::stdin()).unwrap(); let mut input = input_str.split_whitespace(); let mut read_int = ||->usize {input.next().unwrap().parse().unwrap()}; //差分列が回文ならYes let N = read_int(); let A:Vec = (0..N).map(|_| read_int()).collect(); let mut D = vec![]; for i in 1..N{ D.push(A[i]-A[i-1]); } let mut revD = D.clone();revD.reverse(); println!("{}",if D == revD {"Yes"} else {"No"}); }