use std::{fs::read_to_string}; const ITERATIONS: u32 = 256; const NEW_FISH_LIFETIME: u8 = 8; fn main() { let input_char_vec = read_to_string("./input.txt").expect("ERROR reading file"); let split_input = input_char_vec.split(",").collect::>(); let mut fish: Vec = split_input.iter().map( |x| x.parse::().unwrap() ).collect(); print_fish(&fish, -1); for _i in 1..ITERATIONS + 1 { for fi in 0..fish.len() { let current_timer = fish[fi]; if current_timer == 0 { fish[fi] = 6; fish.push(NEW_FISH_LIFETIME); } else { fish[fi] = current_timer - 1; } } println!("Interation {} of {}, {}", _i, ITERATIONS, fish.len()); //print_fish(&fish, _i as i32); } println!("Final Number of Fish: {}", fish.len()); } fn print_fish(fish: &Vec, iteration: i32){ let fish_copy = fish.to_owned(); print!("Iteration: {}, Fish: ", iteration); for f in fish_copy { print!("{}, ", f); } print!("\n"); }