1
0

Optimized day 4 part 2

This commit is contained in:
Ishan Jain 2022-12-04 21:36:22 +05:30
parent e9721b5117
commit f23aa6e583
Signed by: ishan
GPG Key ID: 0506DB2A1CC75C27

View File

@ -1,24 +1,27 @@
#![feature(test)]
extern crate test;
const INPUTS: [&str; 2] = [
include_str!("../inputs/sample.txt"),
include_str!("../inputs/input.txt"),
const INPUTS: [&[u8]; 2] = [
include_bytes!("../inputs/sample.txt"),
include_bytes!("../inputs/input.txt"),
];
fn parse(input: &'static str) -> impl Iterator<Item = ((u64, u64), (u64, u64))> {
input.trim().lines().map(|line| {
let (a, b) = line.split_once(',').unwrap();
fn parse(input: &[u8]) -> impl Iterator<Item = ((u8, u8), (u8, u8))> + '_ {
input
.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();
let aj = aj.parse::<u64>().unwrap();
let (bi, bj) = b.split_once('-').unwrap();
let bi = bi.parse::<u64>().unwrap();
let bj = bj.parse::<u64>().unwrap();
((ai, aj), (bi, bj))
(
(nums.next().unwrap(), nums.next().unwrap()),
(nums.next().unwrap(), nums.next().unwrap()),
)
})
}
@ -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;
for ((a0, a1), (b0, b1)) in input {