1
0
Files
AdventOfCode2025/src/solvers/trash_compactor.rs
T
2025-12-08 17:07:34 +01:00

32 lines
1.0 KiB
Rust

use crate::solvers::Solver;
use grid::*;
use std::io::BufRead;
pub struct TrashCompactor {}
impl Solver for TrashCompactor {
const PUZZLE_INDEX: u8 = 6;
const PUZZLE_NAME: &'static str = "Trash Compactor";
fn process_data<R: BufRead>(&self, reader: R) -> (u64, u64) {
let mut part1 = 0;
let mut grid = Grid::new(0, 0);
for line in reader.lines().map_while(Result::ok) {
let v: Vec<&str> = line.split(' ').filter(|s| !s.is_empty()).collect();
match v[0].parse::<u32>() {
Ok(_) => grid.push_row(v.iter().map(|n| n.parse::<u64>().unwrap()).collect()),
Err(_) => {
for (i, sign) in v.iter().enumerate() {
if *sign == "+" {
part1 += grid.iter_col(i).sum::<u64>();
} else {
part1 += grid.iter_col(i).product::<u64>();
}
}
}
}
}
(part1, 0)
}
}