add day 20
This commit is contained in:
Generated
+7
@@ -0,0 +1,7 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 4
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "day20"
|
||||||
|
version = "0.1.0"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
name = "day20"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2024"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
const LIMIT: i64 = 36_000_000;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let input = 1_000_000;
|
||||||
|
|
||||||
|
part1(input); // 831600
|
||||||
|
part2(input); // 110880 too low
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part1(input: i64) {
|
||||||
|
let mut result = vec![0_i64; input as usize];
|
||||||
|
|
||||||
|
for i in 1..input {
|
||||||
|
for j in (i..input).step_by(i as usize) {
|
||||||
|
result[j as usize] += 10 * i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i, value) in result.iter().enumerate() {
|
||||||
|
if value > &LIMIT {
|
||||||
|
println!("{i}");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part2(input: i64) {
|
||||||
|
let mut result = vec![0_i64; input as usize];
|
||||||
|
|
||||||
|
for i in 1..input {
|
||||||
|
for j in (i..=50 * i)
|
||||||
|
.step_by(i as usize)
|
||||||
|
.take_while(|idx| *idx < input)
|
||||||
|
{
|
||||||
|
result[j as usize] += 11 * i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i, value) in result.iter().enumerate() {
|
||||||
|
if value > &LIMIT {
|
||||||
|
println!("{i}");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user