@@ -21,6 +21,8 @@ pub fn part1(s: &str) -> u64 {
2121 ( s. get_unchecked ( i) - b'a' ) as u16 * 26 + ( s. get_unchecked ( i + 1 ) - b'a' ) as u16 ;
2222 let cp2 = ( s. get_unchecked ( i + 3 ) - b'a' ) as u16 * 26
2323 + ( s. get_unchecked ( i + 4 ) - b'a' ) as u16 ;
24+ let cp1 = ( cp1 + T_START_REM ) % MAX as u16 ;
25+ let cp2 = ( cp2 + T_START_REM ) % MAX as u16 ;
2426
2527 connections
2628 . get_unchecked_mut ( cp1 as usize )
@@ -31,35 +33,35 @@ pub fn part1(s: &str) -> u64 {
3133
3234 i += 6 ;
3335 }
34- }
3536
36- // println!(
37- // "{}{}:",
38- // ((c / 26) as u8 + b'a') as char,
39- // ((c % 26) as u8 + b'a') as char,
40- // );
41-
42- let mut sum = 0 ;
43- for c in T_START ..T_END {
44- for con in & connections[ c as usize ] {
45- if ( ( * con + T_START_REM ) % MAX as u16 ) < ( c + T_START_REM ) % MAX as u16 {
46- continue ;
47- }
48- for concon in & connections[ * con as usize ] {
49- if ( ( * concon + T_START_REM ) % MAX as u16 ) < ( * con + T_START_REM ) % MAX as u16 {
37+ // println!(
38+ // "{}{}:",
39+ // ((c / 26) as u8 + b'a') as char,
40+ // ((c % 26) as u8 + b'a') as char,
41+ // );
42+
43+ let mut sum = 0 ;
44+ for c in 0 ..26 {
45+ for con in & connections[ c as usize ] {
46+ if * con < c {
5047 continue ;
5148 }
52- for conconcon in & connections[ * concon as usize ] {
53- if * conconcon == c {
54- sum += 1 ;
55- break ;
49+ for concon in & connections[ * con as usize ] {
50+ if * concon < * con {
51+ continue ;
52+ }
53+ for conconcon in & connections[ * concon as usize ] {
54+ if * conconcon == c {
55+ sum += 1 ;
56+ break ;
57+ }
5658 }
5759 }
5860 }
5961 }
60- }
6162
62- sum
63+ sum
64+ }
6365}
6466
6567static mut SCRATCH : [ u8 ; 16 * 3 ] = [ 0 ; 16 * 3 ] ;
0 commit comments