fn main() { let n: usize = { let mut buf = String::new(); std::io::stdin().read_line(&mut buf).unwrap(); buf.trim_end().parse().unwrap() }; let a: Vec = { let mut buf = String::new(); std::io::stdin().read_line(&mut buf).unwrap(); let iter = buf.split_whitespace(); iter.map(|x| x.parse().unwrap()).collect() }; let mut sum = 0; for i in (0..n).rev() { if (a[i] + sum) % (i as i64 + 1) == 0 { sum += (a[i] + sum) / (i as i64 + 1); } else { return println!("No"); } } println!("Yes"); }