add day 19 naive approach

This commit is contained in:
timeshifter
2026-07-02 18:21:40 +02:00
parent 0f2218b7e1
commit 530a58ea39
3 changed files with 58 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "day19"
version = "0.1.0"
+9
View File
@@ -0,0 +1,9 @@
[package]
name = "day19"
version = "0.1.0"
edition = "2024"
[dependencies]
[profile.release]
lto = "fat"
+42
View File
@@ -0,0 +1,42 @@
#[cfg(debug_assertions)]
const LENGTH: usize = 5;
#[cfg(not(debug_assertions))]
const LENGTH: usize = 3_017_957;
fn main() {
let mut pointer = 0;
let mut has_presents = [true; LENGTH];
let mut next_elf = [0; LENGTH];
for (idx, val) in next_elf.iter_mut().enumerate() {
*val = (idx + 1) % LENGTH;
}
'outer: loop {
let mut offset = 1;
loop {
let idx = (pointer + offset) % LENGTH;
if has_presents[idx] {
has_presents[idx] = false;
pointer = idx;
break;
} else {
offset += 1;
}
}
let count = has_presents.iter().filter(|b| **b).count();
println!("{count}");
if count == 1 {
let correct_idx = has_presents
.iter()
.enumerate()
.filter(|(_, b)| **b)
.map(|(i, _)| i)
.next()
.unwrap()
+ 1;
println!("{correct_idx}");
break 'outer;
}
}
}