Optimized day 4 part 2
This commit is contained in:
parent
e9721b5117
commit
f23aa6e583
37
src/main.rs
37
src/main.rs
|
@ -1,25 +1,28 @@
|
||||||
#![feature(test)]
|
#![feature(test)]
|
||||||
extern crate test;
|
extern crate test;
|
||||||
|
|
||||||
const INPUTS: [&str; 2] = [
|
const INPUTS: [&[u8]; 2] = [
|
||||||
include_str!("../inputs/sample.txt"),
|
include_bytes!("../inputs/sample.txt"),
|
||||||
include_str!("../inputs/input.txt"),
|
include_bytes!("../inputs/input.txt"),
|
||||||
];
|
];
|
||||||
|
|
||||||
fn parse(input: &'static str) -> impl Iterator<Item = ((u64, u64), (u64, u64))> {
|
fn parse(input: &[u8]) -> impl Iterator<Item = ((u8, u8), (u8, u8))> + '_ {
|
||||||
input.trim().lines().map(|line| {
|
input
|
||||||
let (a, b) = line.split_once(',').unwrap();
|
.split(|&c| c == b'\n')
|
||||||
|
.filter(|line| !line.is_empty())
|
||||||
|
.map(|line| {
|
||||||
|
let mut nums = line.split(|&c| c == b',').flat_map(|set| {
|
||||||
|
set.split(|&c| c == b'-').map(|num| {
|
||||||
|
num.get(1)
|
||||||
|
.map_or(num[0] - b'0', |c| (num[0] - b'0') * 10 + c - b'0')
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
let (ai, aj) = a.split_once('-').unwrap();
|
(
|
||||||
let ai = ai.parse::<u64>().unwrap();
|
(nums.next().unwrap(), nums.next().unwrap()),
|
||||||
let aj = aj.parse::<u64>().unwrap();
|
(nums.next().unwrap(), nums.next().unwrap()),
|
||||||
|
)
|
||||||
let (bi, bj) = b.split_once('-').unwrap();
|
})
|
||||||
let bi = bi.parse::<u64>().unwrap();
|
|
||||||
let bj = bj.parse::<u64>().unwrap();
|
|
||||||
|
|
||||||
((ai, aj), (bi, bj))
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
@ -31,7 +34,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn solution(input: impl Iterator<Item = ((u64, u64), (u64, u64))>) -> usize {
|
fn solution(input: impl Iterator<Item = ((u8, u8), (u8, u8))>) -> usize {
|
||||||
let mut score = 0;
|
let mut score = 0;
|
||||||
|
|
||||||
for ((a0, a1), (b0, b1)) in input {
|
for ((a0, a1), (b0, b1)) in input {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user