@@ -46,21 +46,21 @@ fn parse(input: &str) -> Result<(Vec<Vec<Tile>>, Coords), AocError> {
46
46
}
47
47
48
48
impl Solution for Day21 {
49
- type A = usize ;
50
- type B = usize ;
49
+ type A = u64 ;
50
+ type B = u64 ;
51
51
52
52
fn default_input ( & self ) -> & ' static str {
53
53
include_str ! ( "../../../inputs/2023/day21.txt" )
54
54
}
55
55
56
- fn part_1 ( & self , input : & str ) -> Result < usize , AocError > {
56
+ fn part_1 ( & self , input : & str ) -> Result < u64 , AocError > {
57
57
let ( tiles, start) = parse ( input) ?;
58
58
let reachable = find_reachable ( & tiles, start, 64 , false ) ;
59
59
60
- Ok ( reachable. len ( ) )
60
+ Ok ( reachable. len ( ) as u64 )
61
61
}
62
62
63
- fn part_2 ( & self , input : & str ) -> Result < usize , AocError > {
63
+ fn part_2 ( & self , input : & str ) -> Result < u64 , AocError > {
64
64
let ( tiles, start) = parse ( input) ?;
65
65
66
66
// This works only on many assumptions of what the input looks like.
@@ -127,7 +127,7 @@ impl Solution for Day21 {
127
127
// Our input distance is odd.
128
128
// After exiting the middle area (65) we need to move accross
129
129
// (26501365 - 65) / 131 gardens to reach the point
130
- let n = ( ( 26501365 - ( ( size - 1 ) / 2 ) ) / size) as usize ;
130
+ let n = ( ( 26501365 - ( ( size - 1 ) / 2 ) ) / size) as u64 ;
131
131
132
132
// On paper with some geometry and logic I've determined the count of shapes to be
133
133
let a_count = ( n - 1 ) . pow ( 2 ) ;
@@ -194,7 +194,7 @@ fn find_reachable(
194
194
unique
195
195
}
196
196
197
- fn visited_area ( reachable : & HashSet < Coords > , garden : Coords , size : isize ) -> usize {
197
+ fn visited_area ( reachable : & HashSet < Coords > , garden : Coords , size : isize ) -> u64 {
198
198
reachable
199
199
. iter ( )
200
200
. filter ( |( x, y) | {
@@ -203,7 +203,7 @@ fn visited_area(reachable: &HashSet<Coords>, garden: Coords, size: isize) -> usi
203
203
&& * y >= garden. 1 * size
204
204
&& * y < ( garden. 1 + 1 ) * size
205
205
} )
206
- . count ( )
206
+ . count ( ) as u64
207
207
}
208
208
209
209
#[ cfg( test) ]
0 commit comments