add day 9 part 2

got inspiration from reddit
This commit is contained in:
timeshifter
2026-06-30 10:57:11 +02:00
parent a541049058
commit 6422973ea7
+22 -6
View File
@@ -2,16 +2,32 @@ fn main() {
let data = std::fs::read_to_string("input.txt").unwrap(); let data = std::fs::read_to_string("input.txt").unwrap();
part1(data.trim()); // 150914 part1(data.trim()); // 150914
part2(data.trim()); part2(data.trim()); // 11052855125
} }
fn part2(data: &str) { fn part2(data: &str) {
// let mut input = data.to_string(); let mut length = 0;
let mut pointer = 0;
// while input.contains('(') { let chars: Vec<_> = data.chars().collect();
// input = decompress_sequence(&input);
// } let mut weights = vec![1_u64; chars.len()];
// println!("{}", input.len());
while let Some(c) = chars.get(pointer) {
if *c == '(' {
let (repeat_length, repeat_amount, marker_length) = parse_marker(&chars, &pointer);
pointer += marker_length;
for weight in &mut weights[pointer..pointer + repeat_length] {
*weight *= repeat_amount as u64;
}
} else {
length += weights[pointer];
pointer += 1;
}
}
println!("{}", length);
} }
fn part1(data: &str) { fn part1(data: &str) {