solution: day25 part1
This commit is contained in:
		
							
								
								
									
										40
									
								
								src/bin/25.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/bin/25.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| const ONE: u64 = 20151125; | ||||
| pub fn part_one(input: &str) -> Option<u64> { | ||||
|     let l = input.len(); | ||||
|     let (row, column): (u32, u32) = input[80..l - 1] | ||||
|         .split_once(", column ") | ||||
|         .map(|(x, y)| (x.parse().unwrap(), y.parse().unwrap())) | ||||
|         .unwrap(); | ||||
|  | ||||
|     let n = (row + column) * (row + column - 1) / 2 - row + 1; | ||||
|     let mut c = 1; | ||||
|     let mut code = ONE; | ||||
|     while c < n { | ||||
|         code = (code * 252533) % 33554393; | ||||
|         c += 1; | ||||
|     } | ||||
|  | ||||
|     Some(code) | ||||
| } | ||||
| pub fn part_two(input: &str) -> Option<u32> { | ||||
|     None | ||||
| } | ||||
| fn main() { | ||||
|     let input = &aoc::read_file("inputs", 25); | ||||
|     aoc::solve!(1, part_one, input); | ||||
|     aoc::solve!(2, part_two, input); | ||||
| } | ||||
| #[cfg(test)] | ||||
| mod tests { | ||||
|     use super::*; | ||||
|     #[test] | ||||
|     fn test_part_one() { | ||||
|         let input = aoc::read_file("test_inputs", 25); | ||||
|         assert_eq!(part_one(&input.trim()), Some(7726640)); | ||||
|     } | ||||
|     #[test] | ||||
|     fn test_part_two() { | ||||
|         let input = aoc::read_file("test_inputs", 25); | ||||
|         assert_eq!(part_two(&input.trim()), None); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										1
									
								
								src/test_inputs/25.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/test_inputs/25.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| To continue, please consult the code grid in the manual.  Enter the code at row 2, column 4. | ||||
		Reference in New Issue
	
	Block a user