day11 part2
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
pub fn task1() {
|
||||
let square_size = 3;
|
||||
let serial = 6392;
|
||||
let result = (1..=297)
|
||||
.flat_map(|x: i32| (1..=297).map(move |y: i32| (x, y)))
|
||||
let result = (1..=300 - square_size)
|
||||
.flat_map(|x: i32| (1..=300 - square_size).map(move |y: i32| (x, y)))
|
||||
.map(|(x, y)| {
|
||||
let power: i32 = (x..x + 3)
|
||||
let power: i32 = (x..x + square_size)
|
||||
.map(|x| {
|
||||
(y..y + 3)
|
||||
(y..y + square_size)
|
||||
.map(move |y| fuel_level(x, y, serial))
|
||||
.sum::<i32>()
|
||||
})
|
||||
@@ -16,6 +17,30 @@ pub fn task1() {
|
||||
println!("{:?}", result);
|
||||
}
|
||||
|
||||
pub fn task2() {
|
||||
let serial = 6392;
|
||||
let result = (1..300)
|
||||
.map(|square_size| {
|
||||
let result = (1..=300 - square_size)
|
||||
.flat_map(|x: i32| (1..=300 - square_size).map(move |y: i32| (x, y)))
|
||||
.map(|(x, y)| {
|
||||
let power: i32 = (x..x + square_size)
|
||||
.map(|x| {
|
||||
(y..y + square_size)
|
||||
.map(move |y| fuel_level(x, y, serial))
|
||||
.sum::<i32>()
|
||||
})
|
||||
.sum();
|
||||
(x, y, power)
|
||||
})
|
||||
.max_by_key(|(_, _, value)| *value)
|
||||
.unwrap();
|
||||
(result.0, result.1, result.2, square_size)
|
||||
})
|
||||
.max_by_key(|result| result.2);
|
||||
println!("{:?}", result);
|
||||
}
|
||||
|
||||
fn fuel_level(x: i32, y: i32, serial: i32) -> i32 {
|
||||
let rack_id = x + 10;
|
||||
let mut power = rack_id * y;
|
||||
|
||||
Reference in New Issue
Block a user