use std::io::*; fn main() { let mut s: String = String::new(); std::io::stdin().read_to_string(&mut s).ok(); let mut itr = s.trim().split_whitespace(); let n: usize = itr.next().unwrap().parse().unwrap(); let mut a: Vec = (0..n + 1) .map(|_| itr.next().unwrap().parse().unwrap()) .collect(); for i in (3..n + 1).rev() { a[i - 2] += a[i]; a[i] = 0; } while a.last().unwrap() == &0 { a.pop(); } if a.len() == 0 { println!("0"); println!("0"); return; } let mut out = Vec::new(); writeln!(out, "{}", a.len() - 1).ok(); for i in 0..a.len() { if i == a.len() - 1 { writeln!(out, "{}", a[i]).ok(); } else { write!(out, "{} ", a[i]).ok(); } } stdout().write_all(&out).unwrap(); }