day11 part 1

This commit is contained in:
Johannes Schaefer
2018-12-11 11:25:57 +01:00
parent 6d4bdccc6e
commit 267dfb8068
3 changed files with 40 additions and 1 deletions

38
src/tasks/day11.rs Normal file
View 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);
}
}

View File

@@ -8,3 +8,4 @@ pub mod day07;
pub mod day08;
pub mod day09;
pub mod day10;
pub mod day11;