File tree Expand file tree Collapse file tree 2 files changed +13
-14
lines changed
Expand file tree Collapse file tree 2 files changed +13
-14
lines changed Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ scientifically) in [`bench.rs`](./runner/src/bin/bench.rs) on an
2525| [ day 3] ( https://adventofcode.com/2022/day/3 ) | [ ` 0.015 ms ` ] ( ./day03a/src/main.rs ) | [ ` 0.016 ms ` ] ( ./day03b/src/main.rs ) |
2626| [ day 4] ( https://adventofcode.com/2022/day/4 ) | [ ` 0.040 ms ` ] ( ./day04a/src/main.rs ) | [ ` 0.039 ms ` ] ( ./day04b/src/main.rs ) |
2727| [ day 5] ( https://adventofcode.com/2022/day/5 ) | [ ` 0.020 ms ` ] ( ./day05a/src/main.rs ) | [ ` 0.019 ms ` ] ( ./day05b/src/main.rs ) |
28- | [ day 6] ( https://adventofcode.com/2022/day/6 ) | [ ` 0.001 ms ` ] ( ./day06a/src/main.rs ) | [ ` 720 ns ` ] ( ./day06b/src/main.rs ) |
28+ | [ day 6] ( https://adventofcode.com/2022/day/6 ) | [ ` 0.001 ms ` ] ( ./day06a/src/main.rs ) | [ ` 550 ns ` ] ( ./day06b/src/main.rs ) |
2929| [ day 7] ( https://adventofcode.com/2022/day/7 ) | [ ` 0.008 ms ` ] ( ./day07a/src/main.rs ) | [ ` 0.011 ms ` ] ( ./day07b/src/main.rs ) |
3030| [ day 8] ( https://adventofcode.com/2022/day/8 ) | [ ` 0.045 ms ` ] ( ./day08a/src/main.rs ) | [ ` 0.177 ms ` ] ( ./day08b/src/main.rs ) |
3131| [ day 9] ( https://adventofcode.com/2022/day/9 ) | [ ` 0.120 ms ` ] ( ./day09a/src/main.rs ) | [ ` 0.290 ms ` ] ( ./day09b/src/main.rs ) |
Original file line number Diff line number Diff line change 11pub fn main ( ) {
2- let d = include_bytes ! ( "../input.txt" ) ;
3-
4- let mut w = 0 ;
5- ' main: loop {
2+ let mut i = 0 ;
3+ while let Some ( win) = include_bytes ! ( "../input.txt" ) . get ( i..i + 14 ) {
64 let mut seen = 0u32 ;
7- for i in ( 0 ..=13 ) . rev ( ) {
8- let mask = 1 << d[ w + i] - b'a' ;
9- if seen & mask == mask {
10- w += i + 1 ;
11- continue ' main;
12- }
13- seen |= mask;
5+ if let Some ( pos) = win. iter ( ) . rposition ( |b| {
6+ let bit = 1 << ( b % 32 ) ;
7+ let duplicate = seen & bit != 0 ;
8+ seen |= bit;
9+ duplicate
10+ } ) {
11+ i += pos + 1 ;
12+ } else {
13+ break ;
1414 }
15- break ;
1615 }
1716
18- println ! ( "{}" , w + 14 ) ;
17+ println ! ( "{}" , i ) ;
1918}
You can’t perform that action at this time.
0 commit comments