From e72cca67c59275312cb7cfc6cda240b092c2a10e Mon Sep 17 00:00:00 2001 From: Ishan Jain Date: Mon, 12 Dec 2022 01:02:39 +0530 Subject: [PATCH] Refactoring, Added day4 --- src/day4/1.rs | 48 +++ src/day4/2.rs | 73 ++++ src/day4/input.txt | 1001 +++++++++++++++++++++++++++++++++++++++++++ src/day4/sample.txt | 7 + 4 files changed, 1129 insertions(+) create mode 100644 src/day4/1.rs create mode 100644 src/day4/2.rs create mode 100644 src/day4/input.txt create mode 100644 src/day4/sample.txt diff --git a/src/day4/1.rs b/src/day4/1.rs new file mode 100644 index 0000000..e54a27f --- /dev/null +++ b/src/day4/1.rs @@ -0,0 +1,48 @@ +#![feature(test)] +extern crate test; + +const INPUTS: [&str; 2] = [include_str!("./sample.txt"), include_str!("./input.txt")]; + +fn parse(input: &'static str) -> impl Iterator { + input.trim().lines().map(|line| { + let (a, b) = line.split_once(',').unwrap(); + + let (ai, aj) = a.split_once('-').unwrap(); + let ai = ai.parse::().unwrap(); + let aj = aj.parse::().unwrap(); + + let (bi, bj) = b.split_once('-').unwrap(); + let bi = bi.parse::().unwrap(); + let bj = bj.parse::().unwrap(); + + ((ai, aj), (bi, bj)) + }) +} + +fn main() { + for input in INPUTS.iter() { + let output = parse(input); + let score = solution(output); + + println!("{:?}", score); + } +} + +fn solution(input: impl Iterator) -> usize { + let mut score = 0; + + for ((a0, a1), (b0, b1)) in input { + score += ((a0 <= b0 && a1 >= b1) || (b0 <= a0 && b1 >= a1)) as usize; + } + + score +} + +#[bench] +fn solution_bench(b: &mut test::Bencher) { + b.iter(|| { + let input = parse(INPUTS[1]); + let result = solution(input); + test::black_box(result); + }) +} diff --git a/src/day4/2.rs b/src/day4/2.rs new file mode 100644 index 0000000..fb8594e --- /dev/null +++ b/src/day4/2.rs @@ -0,0 +1,73 @@ +#![feature(test)] +extern crate test; + +const INPUTS: [&[u8]; 2] = [ + include_bytes!("./sample.txt"), + include_bytes!("./input.txt"), +]; + +fn parse(input: &[u8]) -> Vec<((u8, u8), (u8, u8))> { + input + .split(|&c| c == b'\n') + .filter(|line| !line.is_empty()) + .map(|line| { + let mut line = line.splitn(2, |&c| c == b'-'); + let e1 = line.next().unwrap(); + + let rest = line.next().unwrap(); + let mut line = rest.split(|&c| c == b','); + let e2 = line.next().unwrap(); + + let rest = line.next().unwrap(); + let mut line = rest.splitn(2, |&x| x == b'-'); + let e3 = line.next().unwrap(); + let e4 = line.next().unwrap(); + + ( + ( + e1.get(1) + .map_or(e1[0] - b'0', |c| ((e1[0] - b'0') * 10 + c - b'0')), + e2.get(1) + .map_or(e2[0] - b'0', |c| ((e2[0] - b'0') * 10 + c - b'0')), + ), + ( + e3.get(1) + .map_or(e3[0] - b'0', |c| ((e3[0] - b'0') * 10 + c - b'0')), + e4.get(1) + .map_or(e4[0] - b'0', |c| ((e4[0] - b'0') * 10 + c - b'0')), + ), + ) + }) + .collect() +} + +fn main() { + for input in INPUTS.iter() { + let output = parse(input); + let score = solution(output); + + println!("{:?}", score); + } +} + +fn solution(input: Vec<((u8, u8), (u8, u8))>) -> usize { + let mut score = 0; + + for ((a0, a1), (b0, b1)) in input { + score += ((a0 <= b0 && a1 >= b1) + || (b0 <= a0 && b1 >= a1) + || (b0 >= a0 && b0 <= a1) + || (a0 >= b0 && a0 <= b1)) as usize; + } + + score +} + +#[bench] +fn solution_bench(b: &mut test::Bencher) { + b.iter(|| { + let input = parse(INPUTS[1]); + let result = solution(input); + test::black_box(result); + }) +} diff --git a/src/day4/input.txt b/src/day4/input.txt new file mode 100644 index 0000000..cbdfd5c --- /dev/null +++ b/src/day4/input.txt @@ -0,0 +1,1001 @@ +22-77,14-96 +7-99,65-98 +22-36,37-62 +25-94,24-67 +6-91,1-6 +88-88,2-88 +27-89,58-96 +21-82,9-94 +38-79,27-80 +4-90,30-55 +84-97,52-93 +12-59,11-12 +4-14,5-12 +50-84,49-89 +3-98,1-3 +91-95,8-22 +15-66,17-67 +27-27,27-90 +36-37,37-96 +31-32,32-80 +1-79,2-78 +36-85,20-36 +2-2,2-98 +33-81,80-99 +4-73,45-72 +3-89,1-4 +6-92,21-91 +7-93,2-92 +47-89,47-50 +64-84,63-65 +22-85,21-91 +16-31,11-14 +4-93,3-93 +15-61,61-62 +21-23,22-88 +59-59,11-58 +23-23,22-89 +19-87,78-86 +13-82,19-83 +22-88,76-92 +46-47,46-46 +30-31,13-31 +6-93,3-98 +54-54,13-53 +51-77,51-77 +84-84,38-84 +84-98,95-98 +34-41,29-64 +50-95,49-94 +24-88,12-22 +40-41,27-41 +28-28,28-92 +65-66,66-73 +6-99,4-7 +15-38,14-39 +16-81,15-82 +14-98,7-14 +89-89,55-89 +82-86,26-82 +9-88,10-83 +5-54,6-74 +81-95,14-96 +20-81,87-87 +8-73,48-73 +44-52,53-57 +95-95,27-96 +30-94,29-95 +22-93,23-94 +18-93,7-18 +12-88,89-90 +72-78,34-78 +53-93,54-86 +12-87,70-87 +9-84,70-83 +16-89,50-90 +35-67,36-66 +46-56,45-57 +96-99,26-90 +34-90,35-75 +20-77,21-77 +33-56,2-83 +20-75,19-73 +43-52,18-43 +15-54,21-54 +14-63,23-38 +22-48,21-48 +8-20,6-7 +64-72,6-86 +29-92,6-91 +50-88,87-88 +5-72,6-6 +81-81,31-81 +46-52,46-97 +11-36,12-35 +8-80,79-97 +13-94,94-94 +3-98,43-68 +29-61,32-62 +8-60,14-61 +21-93,11-23 +77-77,36-77 +87-98,80-87 +89-92,8-95 +20-70,21-48 +8-90,13-89 +73-82,82-82 +2-3,2-79 +56-93,55-92 +49-84,50-50 +16-69,13-14 +10-68,7-9 +14-97,23-26 +35-76,80-86 +35-86,85-99 +89-89,26-90 +31-94,32-32 +15-57,14-58 +16-30,17-49 +4-68,5-99 +5-98,6-95 +45-64,1-63 +51-75,52-74 +27-58,26-57 +7-87,4-86 +44-51,44-52 +2-2,7-82 +11-80,10-12 +10-22,29-73 +1-41,10-84 +13-42,12-59 +57-57,55-56 +96-99,42-97 +6-95,4-29 +11-91,9-10 +41-44,38-45 +17-98,17-97 +23-55,22-54 +18-84,85-92 +11-83,11-84 +19-61,18-31 +44-54,43-54 +52-87,87-96 +40-98,40-97 +1-79,2-79 +11-33,12-34 +16-79,18-80 +47-50,48-49 +10-90,89-91 +16-98,12-17 +1-19,4-18 +4-72,19-72 +2-69,4-27 +7-9,8-94 +13-77,14-76 +19-89,88-89 +85-92,84-92 +92-93,38-91 +7-65,8-64 +27-71,38-73 +36-92,43-65 +2-5,5-87 +43-95,71-79 +5-61,5-61 +8-78,9-99 +34-34,34-94 +3-60,61-61 +98-98,15-89 +2-56,52-56 +33-90,65-89 +7-72,22-55 +41-70,70-70 +15-73,14-72 +76-76,75-91 +3-82,52-83 +12-51,5-84 +94-96,19-61 +60-62,10-61 +19-95,94-95 +24-57,8-25 +1-3,3-97 +29-46,2-46 +3-73,2-72 +11-79,10-11 +12-35,11-13 +35-59,16-59 +27-88,26-27 +91-91,90-91 +30-48,30-57 +24-34,23-40 +59-98,1-99 +37-42,34-42 +17-99,16-18 +2-36,25-35 +36-36,36-65 +22-77,21-77 +35-45,35-45 +32-99,31-32 +40-54,13-40 +44-44,27-44 +41-93,41-42 +14-44,15-45 +7-63,8-64 +10-10,10-63 +23-92,24-24 +6-95,1-94 +22-23,22-92 +18-31,17-48 +45-58,45-45 +15-86,1-15 +8-71,9-70 +18-68,17-67 +1-85,49-84 +19-47,29-48 +1-74,3-75 +90-92,26-91 +95-99,26-94 +22-95,24-47 +6-79,6-6 +24-97,24-97 +12-15,16-37 +58-78,46-78 +24-43,17-43 +37-67,36-68 +2-97,1-3 +28-29,29-41 +8-9,9-36 +22-62,21-96 +9-24,10-34 +2-2,5-88 +7-16,2-9 +56-95,56-97 +54-79,78-79 +25-48,31-47 +36-82,82-83 +29-77,26-28 +81-81,1-82 +80-89,62-79 +5-98,11-97 +60-80,61-70 +43-52,43-52 +1-96,2-95 +64-91,34-92 +5-85,6-84 +97-98,56-96 +14-93,14-96 +47-86,46-85 +49-49,48-66 +5-96,7-95 +78-79,5-79 +27-54,26-27 +15-15,15-97 +77-92,76-98 +22-39,21-22 +5-31,3-31 +18-98,6-18 +3-4,4-94 +3-95,2-96 +11-56,5-10 +20-82,19-81 +33-51,52-79 +8-53,8-53 +4-82,4-4 +2-97,2-97 +21-29,32-53 +83-98,78-97 +10-88,88-97 +40-50,37-51 +4-4,4-51 +89-90,39-90 +12-12,12-81 +24-55,25-25 +74-74,68-75 +5-89,5-93 +44-86,43-45 +37-47,37-47 +22-99,23-99 +37-59,40-58 +35-99,35-99 +4-85,5-91 +14-87,36-97 +5-64,4-6 +6-94,93-94 +17-83,18-82 +29-99,28-30 +11-99,62-98 +12-64,13-84 +12-97,12-99 +22-42,22-41 +13-91,10-96 +21-49,4-21 +99-99,23-91 +5-42,43-43 +80-82,18-80 +48-97,48-99 +19-49,4-18 +82-99,6-83 +4-96,2-99 +34-40,34-40 +33-51,32-52 +22-62,23-81 +8-70,8-62 +88-97,9-89 +2-4,3-99 +63-95,20-64 +5-96,1-4 +39-79,39-56 +75-88,71-79 +5-96,5-98 +38-39,45-84 +17-96,18-26 +6-7,5-7 +5-39,5-92 +8-26,12-25 +45-51,35-52 +25-75,25-26 +10-98,2-9 +10-64,9-10 +84-86,33-83 +6-50,49-51 +17-72,16-17 +40-61,39-66 +45-50,44-50 +31-41,31-41 +69-83,70-70 +11-86,12-85 +89-92,54-67 +51-79,52-72 +5-10,3-11 +76-76,41-77 +13-53,13-88 +81-91,81-91 +9-68,3-67 +48-59,15-63 +37-97,96-96 +1-78,3-78 +12-43,26-56 +2-67,21-66 +47-58,47-89 +7-69,7-69 +66-93,67-67 +18-41,19-85 +1-50,50-50 +7-18,17-99 +61-92,61-92 +21-40,38-38 +26-99,27-98 +14-94,11-13 +16-18,17-31 +20-32,84-94 +10-97,10-99 +2-89,1-88 +27-94,28-86 +59-96,14-87 +17-91,12-49 +30-86,29-85 +76-77,1-76 +10-94,9-9 +15-37,29-38 +42-63,9-36 +35-52,36-36 +31-32,32-62 +5-11,11-23 +3-8,9-40 +8-99,9-88 +28-60,22-61 +3-42,3-42 +1-5,4-56 +45-90,11-95 +52-52,51-94 +45-51,24-50 +63-92,62-92 +78-94,3-30 +50-51,52-63 +54-58,57-59 +77-77,65-77 +4-90,3-91 +11-48,10-47 +73-90,75-90 +50-58,18-62 +7-98,8-97 +9-76,9-9 +7-47,4-48 +4-95,94-94 +23-58,24-57 +11-18,18-45 +78-99,38-62 +29-70,17-50 +8-80,39-81 +2-99,1-99 +52-67,52-53 +60-94,47-61 +99-99,39-97 +32-92,20-32 +48-81,80-91 +44-51,18-37 +4-57,3-57 +2-84,2-84 +19-20,19-19 +7-80,7-80 +38-38,35-37 +15-99,10-31 +21-55,20-73 +5-6,6-84 +48-79,10-80 +67-96,1-68 +56-95,56-84 +40-96,80-92 +3-3,7-99 +19-85,18-20 +4-8,9-80 +7-53,36-53 +20-30,2-31 +4-72,1-86 +38-85,37-84 +65-69,66-69 +3-6,1-10 +11-35,24-44 +5-70,4-4 +51-79,42-47 +30-31,30-68 +22-97,67-95 +23-45,22-54 +30-76,30-76 +7-94,95-95 +14-66,66-66 +65-76,64-65 +67-89,24-90 +6-57,38-56 +6-71,36-70 +7-73,7-76 +1-2,2-2 +98-98,44-96 +35-35,34-37 +4-99,1-3 +4-17,16-56 +17-74,16-75 +7-97,77-98 +80-94,15-80 +11-62,9-12 +59-71,28-71 +23-95,23-95 +3-70,70-91 +31-97,96-99 +33-79,34-79 +4-19,5-5 +27-63,26-63 +5-25,25-95 +44-74,33-43 +27-43,3-27 +2-96,92-95 +2-89,2-99 +16-16,16-88 +2-95,1-94 +79-82,78-83 +30-96,95-95 +14-88,14-89 +5-16,6-6 +35-72,32-36 +22-99,21-23 +7-93,8-94 +19-98,20-99 +29-30,11-31 +1-99,2-78 +76-86,32-75 +9-95,8-96 +15-40,32-33 +27-76,26-76 +21-79,17-19 +40-64,6-95 +55-91,55-90 +4-77,5-25 +13-92,12-91 +67-72,64-90 +2-64,9-65 +20-70,44-71 +8-72,8-71 +89-96,35-99 +36-36,36-83 +1-39,40-75 +38-56,10-38 +65-80,87-93 +67-69,66-70 +54-85,6-84 +27-89,93-93 +1-99,3-98 +11-87,11-95 +27-88,47-87 +13-80,12-71 +2-79,80-99 +7-74,8-73 +19-19,18-94 +33-91,92-93 +72-81,41-73 +4-66,11-98 +7-88,8-67 +54-73,60-95 +21-63,48-62 +46-97,97-99 +22-28,21-23 +57-58,9-58 +12-97,11-96 +3-98,5-80 +7-21,7-95 +28-51,27-50 +55-99,98-99 +26-48,27-48 +74-97,11-90 +8-92,14-92 +12-52,53-98 +2-96,3-97 +39-39,38-87 +34-35,35-45 +14-84,83-84 +7-93,7-93 +51-56,41-55 +16-54,4-17 +91-95,28-90 +29-93,28-96 +83-83,1-83 +7-97,6-98 +63-70,66-70 +4-21,4-21 +2-7,9-95 +28-97,28-98 +2-72,3-3 +42-42,43-53 +30-81,26-30 +46-52,50-52 +16-27,37-67 +2-92,4-89 +41-85,42-84 +1-93,40-94 +40-97,39-40 +35-69,34-36 +13-95,96-96 +15-94,16-16 +6-11,10-11 +96-96,1-97 +33-98,16-99 +26-79,27-77 +18-67,18-68 +6-86,1-93 +5-92,6-80 +6-93,94-94 +8-73,7-9 +29-43,64-70 +2-98,2-98 +47-50,74-79 +44-44,28-44 +7-19,19-60 +14-98,13-66 +26-77,27-71 +18-70,20-70 +13-99,84-84 +20-86,39-82 +11-25,10-26 +28-28,29-45 +9-9,8-55 +17-94,18-18 +38-71,90-93 +2-50,4-78 +25-43,44-93 +1-17,17-97 +17-64,18-63 +9-89,13-90 +83-97,37-99 +4-4,3-91 +47-69,70-89 +76-96,81-97 +12-13,13-99 +11-85,12-84 +22-95,22-79 +34-96,35-95 +4-17,2-4 +18-74,18-19 +4-87,3-91 +5-79,6-85 +26-99,27-99 +32-50,30-51 +40-70,41-67 +9-78,9-78 +4-98,2-2 +1-3,2-98 +50-50,1-50 +2-75,3-74 +47-71,44-46 +54-82,54-82 +49-93,50-85 +20-86,95-99 +38-86,38-86 +44-59,45-57 +6-6,5-97 +18-97,17-99 +9-31,4-6 +10-90,11-81 +15-16,16-95 +46-97,47-84 +35-47,34-95 +75-94,95-98 +55-90,90-94 +60-90,82-89 +13-51,6-12 +37-87,36-37 +35-89,35-36 +36-69,4-68 +19-24,1-25 +2-96,3-49 +24-88,23-25 +16-39,40-64 +40-68,16-40 +13-91,8-40 +70-91,69-91 +52-86,37-84 +91-99,48-68 +24-35,34-64 +54-73,34-53 +11-76,10-77 +16-90,91-98 +17-18,17-79 +54-66,37-55 +52-77,16-78 +84-97,82-84 +32-48,33-49 +37-58,58-84 +31-63,18-31 +55-67,28-67 +5-99,5-6 +5-48,6-49 +71-93,15-70 +39-75,68-74 +7-8,8-35 +59-59,39-59 +3-13,14-95 +59-66,59-59 +99-99,48-65 +3-95,1-2 +58-88,12-57 +12-12,13-96 +55-68,57-67 +28-37,37-72 +11-94,12-92 +12-91,26-82 +17-65,65-65 +37-91,90-97 +2-43,3-78 +2-14,15-55 +38-40,45-85 +15-76,68-76 +20-23,2-24 +3-97,98-99 +72-72,62-72 +27-51,13-26 +5-53,7-54 +86-86,6-87 +13-67,12-94 +1-87,2-2 +27-66,26-27 +3-86,81-87 +18-99,42-91 +16-84,82-85 +55-95,85-95 +4-96,4-98 +62-89,59-76 +6-78,7-7 +53-53,53-90 +44-72,72-88 +26-98,98-99 +58-60,59-87 +36-53,53-83 +49-74,49-74 +84-85,71-83 +1-98,13-95 +27-70,26-76 +14-83,14-83 +43-65,64-65 +14-78,7-78 +93-93,43-63 +11-40,10-41 +31-96,31-31 +2-63,64-77 +33-33,32-51 +3-17,4-72 +95-95,95-97 +15-98,15-88 +47-84,46-48 +5-5,4-87 +1-77,40-78 +2-86,37-85 +18-90,17-90 +16-95,15-17 +47-95,46-94 +20-40,15-39 +56-90,55-90 +41-90,41-90 +14-39,13-46 +98-99,61-99 +29-31,30-86 +22-33,28-34 +10-98,2-10 +6-18,14-19 +97-97,97-97 +14-62,7-50 +12-21,15-17 +73-73,74-90 +6-13,5-14 +79-86,79-87 +2-87,3-87 +51-86,51-85 +35-94,11-93 +43-78,78-78 +76-97,31-76 +12-54,13-13 +8-95,48-96 +74-85,85-95 +11-13,21-40 +9-82,2-94 +40-48,39-95 +5-16,12-29 +7-22,21-42 +10-22,21-99 +59-73,44-74 +38-60,39-59 +16-92,29-93 +38-48,4-39 +8-59,7-59 +2-97,4-96 +77-92,77-91 +39-53,40-69 +3-92,5-92 +97-99,61-97 +19-46,45-59 +16-58,14-16 +14-15,13-17 +14-92,15-15 +13-42,12-42 +70-93,71-93 +6-53,3-7 +10-11,10-11 +10-99,22-99 +7-23,15-86 +11-95,94-97 +21-45,44-45 +19-21,22-30 +8-91,9-83 +7-91,9-47 +2-93,3-94 +48-61,46-79 +8-25,26-93 +88-92,11-89 +2-30,3-29 +30-30,29-90 +50-66,25-67 +37-47,37-48 +26-34,14-17 +17-49,16-72 +35-57,3-35 +10-10,9-27 +21-22,21-99 +58-89,48-57 +34-38,35-39 +86-89,52-97 +51-69,34-50 +21-59,3-96 +19-88,88-88 +16-96,16-66 +18-49,11-17 +1-1,3-70 +8-39,39-75 +45-46,45-98 +39-91,67-91 +2-2,1-85 +14-68,43-69 +37-79,46-80 +29-43,40-40 +3-4,40-65 +14-89,15-89 +27-79,17-26 +1-2,1-98 +54-92,91-93 +22-53,54-84 +55-95,94-97 +9-36,8-35 +3-37,3-37 +49-76,49-65 +10-95,95-95 +8-98,37-99 +2-83,1-3 +38-91,39-92 +9-95,8-94 +2-43,2-43 +15-89,77-90 +41-47,37-46 +9-94,1-10 +5-99,65-98 +42-83,42-42 +54-73,38-98 +57-57,56-76 +14-44,45-73 +26-27,27-72 +20-85,19-23 +5-99,6-98 +9-60,7-8 +99-99,27-99 +3-3,25-55 +62-64,16-65 +84-84,41-84 +23-78,4-93 +35-99,34-35 +44-46,45-90 +89-89,5-88 +63-85,64-84 +66-76,45-68 +60-90,61-89 +94-94,94-95 +87-94,80-86 +23-70,71-90 +93-93,5-93 +33-80,34-79 +15-60,16-16 +57-97,53-57 +67-84,83-93 +9-90,18-59 +28-82,21-81 +32-64,31-64 +59-81,18-59 +23-85,7-84 +50-68,12-68 +75-80,76-79 +64-92,64-66 +61-71,62-70 +29-96,20-31 +57-75,71-75 +48-50,49-78 +12-82,76-82 +2-35,4-35 +18-60,13-60 +52-81,20-27 +13-19,13-20 +33-61,48-61 +65-89,24-88 +32-46,32-69 +12-12,2-11 +18-97,16-18 +11-11,10-89 +3-72,3-3 +24-92,23-23 +13-15,16-51 +37-69,24-70 +3-99,10-99 +3-73,1-3 +8-30,3-29 +28-81,28-81 +90-94,1-90 +1-14,1-1 +2-98,1-99 +62-88,55-63 +19-33,34-34 +15-94,14-97 +22-34,15-34 +41-59,42-60 +4-89,18-90 +32-84,84-84 +32-95,31-72 +7-88,8-56 +20-21,20-96 +31-80,31-81 +6-61,30-43 +6-71,72-86 +20-71,28-96 +8-72,57-86 +1-3,3-19 +38-39,39-90 +58-58,58-90 +55-55,14-55 +96-96,3-89 +9-83,8-93 +3-85,3-84 +4-4,3-81 +66-82,81-82 +11-11,12-87 +2-3,7-94 +5-76,2-96 +13-82,46-81 +7-51,4-50 +18-73,73-73 +14-88,14-88 +50-83,50-94 +21-58,59-95 +47-99,48-93 +11-53,1-9 +6-75,3-75 +2-4,3-66 +2-55,1-3 +48-58,44-58 +78-78,77-78 +31-42,39-43 +43-60,44-60 +1-92,93-96 +43-44,44-64 +3-77,3-3 +9-98,10-99 +15-16,15-56 +5-24,11-25 +58-92,99-99 +10-10,11-86 +7-54,6-53 +56-74,17-55 +57-87,48-89 +33-64,2-89 +45-70,14-71 +24-69,23-70 +62-93,15-90 +69-83,70-83 +8-15,12-14 +34-63,62-93 +3-6,7-81 +75-92,75-92 +24-28,13-31 +16-54,31-50 +53-54,53-91 +34-99,35-97 +7-64,2-7 +11-67,67-89 +70-72,71-79 +57-88,88-89 +59-60,59-88 +5-90,99-99 +4-67,38-41 +8-83,14-82 +20-22,21-45 +1-66,16-67 +59-70,34-60 +3-85,14-84 +49-93,48-94 +97-97,2-96 +38-71,37-72 +4-90,3-91 +6-90,7-99 +57-97,57-87 +37-75,38-81 +13-86,12-13 +60-76,61-84 +6-89,7-98 +6-99,5-96 +4-75,75-99 +3-91,22-62 +11-71,28-37 +26-35,13-26 +12-25,24-24 +16-35,36-47 +16-39,40-77 +1-65,58-63 +37-89,43-88 +74-74,74-84 +80-86,40-80 +4-28,25-94 +35-93,35-81 +6-97,2-99 +10-68,11-33 +4-76,34-78 +18-84,21-46 +79-82,82-82 +1-3,4-97 +7-98,8-97 +36-97,35-35 +24-61,23-24 +3-93,8-92 +67-67,65-66 +30-77,1-65 +39-64,3-63 +18-52,13-52 +24-70,69-76 +1-56,14-45 +3-60,4-4 +1-8,1-9 +14-20,19-79 +34-82,35-83 +67-88,41-89 +8-29,56-84 +32-40,33-40 +4-93,3-93 +5-5,4-78 +58-79,16-59 +24-31,15-61 +49-50,40-50 +46-46,47-95 +34-34,35-95 +19-21,18-20 +4-8,7-98 +9-10,9-97 +14-83,5-14 +20-21,20-55 +14-97,13-31 +25-39,24-89 +17-73,14-74 +14-36,13-36 +58-64,59-65 +20-92,21-55 +20-85,19-20 +19-47,18-99 + diff --git a/src/day4/sample.txt b/src/day4/sample.txt new file mode 100644 index 0000000..a696285 --- /dev/null +++ b/src/day4/sample.txt @@ -0,0 +1,7 @@ +2-4,6-8 +2-3,4-5 +5-7,7-9 +2-8,3-7 +6-6,4-6 +2-6,4-8 +