pub fn main() { let txt = std::fs::read_to_string("./input/day4.txt").unwrap(); let mut sum: u32 = 0; let mut a = vec![1; 256]; for (idx, line) in txt.lines().enumerate() { let mut cnt: u32 = 0; let mut br1 = vec![]; let mut br2 = vec![]; let sec_pt = line .split(": ") .collect::>() .get(1) .unwrap() .split(" | ") .collect::>(); for i in sec_pt.get(0).unwrap().split(r" ") { if i == "" { continue; } br1.push(i.parse::().unwrap()); } for i in sec_pt.get(1).unwrap().split(r" ") { if i == "" { continue; } br2.push(i.parse::().unwrap()); } for i in &br1 { for j in &br2 { if i == j { cnt += 1; } } } for i in 1..cnt + 1 { a[idx + i as usize] += a[idx]; } sum += a[idx]; } println!("{}", sum); }