day11 part 1
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
fn main() {
|
fn main() {
|
||||||
aoc_2018::tasks::day10::task1();
|
aoc_2018::tasks::day11::task1();
|
||||||
// aoc_2018::tasks::day09::task2();
|
// aoc_2018::tasks::day09::task2();
|
||||||
}
|
}
|
||||||
|
|||||||
38
src/tasks/day11.rs
Normal file
38
src/tasks/day11.rs
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
pub fn task1() {
|
||||||
|
let serial = 6392;
|
||||||
|
let result = (1..=297)
|
||||||
|
.flat_map(|x: i32| (1..=297).map(move |y: i32| (x, y)))
|
||||||
|
.map(|(x, y)| {
|
||||||
|
let power: i32 = (x..x + 3)
|
||||||
|
.map(|x| {
|
||||||
|
(y..y + 3)
|
||||||
|
.map(move |y| fuel_level(x, y, serial))
|
||||||
|
.sum::<i32>()
|
||||||
|
})
|
||||||
|
.sum();
|
||||||
|
(x, y, power)
|
||||||
|
})
|
||||||
|
.max_by_key(|(_, _, value)| *value);
|
||||||
|
println!("{:?}", result);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn fuel_level(x: i32, y: i32, serial: i32) -> i32 {
|
||||||
|
let rack_id = x + 10;
|
||||||
|
let mut power = rack_id * y;
|
||||||
|
power += serial;
|
||||||
|
power *= rack_id;
|
||||||
|
power = power / 100 % 10;
|
||||||
|
power = power - 5;
|
||||||
|
power
|
||||||
|
}
|
||||||
|
|
||||||
|
mod test {
|
||||||
|
use super::fuel_level;
|
||||||
|
#[test]
|
||||||
|
fn name() {
|
||||||
|
assert_eq!(fuel_level(3, 5, 8), 4);
|
||||||
|
assert_eq!(fuel_level(122, 79, 57), -5);
|
||||||
|
assert_eq!(fuel_level(217, 196, 39), 0);
|
||||||
|
assert_eq!(fuel_level(101, 153, 71), 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,3 +8,4 @@ pub mod day07;
|
|||||||
pub mod day08;
|
pub mod day08;
|
||||||
pub mod day09;
|
pub mod day09;
|
||||||
pub mod day10;
|
pub mod day10;
|
||||||
|
pub mod day11;
|
||||||
|
|||||||
Reference in New Issue
Block a user