y2015d25
This commit is contained in:
parent
29a122c3ff
commit
33ba8d72f4
1
y2015/resources/25_input.txt
Normal file
1
y2015/resources/25_input.txt
Normal file
@ -0,0 +1 @@
|
||||
To continue, please consult the code grid in the manual. Enter the code at row 2981, column 3075.
|
9
y2015/src/bin/d25.rs
Normal file
9
y2015/src/bin/d25.rs
Normal file
@ -0,0 +1,9 @@
|
||||
use y2015::days::d25;
|
||||
|
||||
fn main() {
|
||||
part1();
|
||||
}
|
||||
|
||||
fn part1() {
|
||||
println!("{}", d25::process_part1(3075, 2981));
|
||||
}
|
38
y2015/src/days/d25.rs
Normal file
38
y2015/src/days/d25.rs
Normal file
@ -0,0 +1,38 @@
|
||||
use utils::number::Number;
|
||||
|
||||
// 31562160 too high
|
||||
pub fn process_part1(x: u32, y: u32) -> Number {
|
||||
// the grid is actually a pyramid
|
||||
// 1
|
||||
// 2 3
|
||||
// 4 5 6
|
||||
// etc
|
||||
// Num on top == 20151125
|
||||
let mut current = Number::from(20151125);
|
||||
let mut starting_y_idx = 2;
|
||||
loop {
|
||||
let mut x_idx = 1;
|
||||
for y_idx in (1..=starting_y_idx).rev() {
|
||||
current *= Number::from(252533);
|
||||
current %= Number::from(33554393);
|
||||
if x_idx == x && y_idx == y {
|
||||
return current;
|
||||
}
|
||||
x_idx += 1;
|
||||
}
|
||||
starting_y_idx += 1;
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn part1() {
|
||||
let result = process_part1(6, 6);
|
||||
assert_eq!(result, 27995004.into());
|
||||
let result = process_part1(1, 2);
|
||||
assert_eq!(result, 31916031.into());
|
||||
}
|
||||
}
|
@ -8,7 +8,14 @@ pub mod d15;
|
||||
pub mod d16;
|
||||
pub mod d17;
|
||||
pub mod d18;
|
||||
pub mod d19;
|
||||
pub mod d2;
|
||||
pub mod d20;
|
||||
pub mod d21;
|
||||
pub mod d22;
|
||||
pub mod d23;
|
||||
pub mod d24;
|
||||
pub mod d25;
|
||||
pub mod d3;
|
||||
pub mod d4;
|
||||
pub mod d5;
|
||||
@ -16,15 +23,3 @@ pub mod d6;
|
||||
pub mod d7;
|
||||
pub mod d8;
|
||||
pub mod d9;
|
||||
|
||||
pub mod d19;
|
||||
|
||||
pub mod d20;
|
||||
|
||||
pub mod d21;
|
||||
|
||||
pub mod d22;
|
||||
|
||||
pub mod d23;
|
||||
|
||||
pub mod d24;
|
||||
|
Loading…
Reference in New Issue
Block a user