Added Solution for 2021 day 05
This commit is contained in:
parent
3459c8a5ad
commit
4da49bde8d
5 changed files with 736 additions and 0 deletions
8
2021/day05_hydrothermal_venture/Cargo.toml
Normal file
8
2021/day05_hydrothermal_venture/Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[package]
|
||||||
|
name = "day05_hydrothermal_venture"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
86
2021/day05_hydrothermal_venture/challenge.txt
Normal file
86
2021/day05_hydrothermal_venture/challenge.txt
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
You come across a field of [hydrothermal vents](https://en.wikipedia.org/wiki/Hydrothermal_vent) on the ocean floor! These vents constantly produce large, opaque clouds, so it would be best to avoid them if possible.
|
||||||
|
|
||||||
|
They tend to form in *lines*; the submarine helpfully produces a list of nearby lines of vents (your puzzle input) for you to review. For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
0,9 -> 5,9
|
||||||
|
8,0 -> 0,8
|
||||||
|
9,4 -> 3,4
|
||||||
|
2,2 -> 2,1
|
||||||
|
7,0 -> 7,4
|
||||||
|
6,4 -> 2,0
|
||||||
|
0,9 -> 2,9
|
||||||
|
3,4 -> 1,4
|
||||||
|
0,0 -> 8,8
|
||||||
|
5,5 -> 8,2
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Each line of vents is given as a line segment in the format `x1,y1 -> x2,y2` where `x1`,`y1` are the coordinates of one end the line segment and `x2`,`y2` are the coordinates of the other end. These line segments include the points at both ends. In other words:
|
||||||
|
|
||||||
|
* An entry like `1,1 -> 1,3` covers points `1,1`, `1,2`, and `1,3`.
|
||||||
|
* An entry like `9,7 -> 7,7` covers points `9,7`, `8,7`, and `7,7`.
|
||||||
|
|
||||||
|
For now, *only consider horizontal and vertical lines*: lines where either `x1 = x2` or `y1 = y2`.
|
||||||
|
|
||||||
|
So, the horizontal and vertical lines from the above list would produce the following diagram:
|
||||||
|
|
||||||
|
```
|
||||||
|
.......1..
|
||||||
|
..1....1..
|
||||||
|
..1....1..
|
||||||
|
.......1..
|
||||||
|
.112111211
|
||||||
|
..........
|
||||||
|
..........
|
||||||
|
..........
|
||||||
|
..........
|
||||||
|
222111....
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
In this diagram, the top left corner is `0,0` and the bottom right corner is `9,9`. Each position is shown as *the number of lines which cover that point* or `.` if no line covers that point. The top-left pair of `1`s, for example, comes from `2,2 -> 2,1`; the very bottom row is formed by the overlapping lines `0,9 -> 5,9` and `0,9 -> 2,9`.
|
||||||
|
|
||||||
|
To avoid the most dangerous areas, you need to determine *the number of points where at least two lines overlap*. In the above example, this is anywhere in the diagram with a `2` or larger - a total of `*5*` points.
|
||||||
|
|
||||||
|
Consider only horizontal and vertical lines. *At how many points do at least two lines overlap?*
|
||||||
|
|
||||||
|
Your puzzle answer was `6007`.
|
||||||
|
|
||||||
|
\--- Part Two ---
|
||||||
|
----------
|
||||||
|
|
||||||
|
Unfortunately, considering only horizontal and vertical lines doesn't give you the full picture; you need to also consider *diagonal lines*.
|
||||||
|
|
||||||
|
Because of the limits of the hydrothermal vent mapping system, the lines in your list will only ever be horizontal, vertical, or a diagonal line at exactly 45 degrees. In other words:
|
||||||
|
|
||||||
|
* An entry like `1,1 -> 3,3` covers points `1,1`, `2,2`, and `3,3`.
|
||||||
|
* An entry like `9,7 -> 7,9` covers points `9,7`, `8,8`, and `7,9`.
|
||||||
|
|
||||||
|
Considering all lines from the above example would now produce the following diagram:
|
||||||
|
|
||||||
|
```
|
||||||
|
1.1....11.
|
||||||
|
.111...2..
|
||||||
|
..2.1.111.
|
||||||
|
...1.2.2..
|
||||||
|
.112313211
|
||||||
|
...1.2....
|
||||||
|
..1...1...
|
||||||
|
.1.....1..
|
||||||
|
1.......1.
|
||||||
|
222111....
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
You still need to determine *the number of points where at least two lines overlap*. In the above example, this is still anywhere in the diagram with a `2` or larger - now a total of `*12*` points.
|
||||||
|
|
||||||
|
Consider all of the lines. *At how many points do at least two lines overlap?*
|
||||||
|
|
||||||
|
Your puzzle answer was `19349`.
|
||||||
|
|
||||||
|
Both parts of this puzzle are complete! They provide two gold stars: \*\*
|
||||||
|
|
||||||
|
At this point, you should [return to your Advent calendar](/2021) and try another puzzle.
|
||||||
|
|
||||||
|
If you still want to see it, you can [get your puzzle input](5/input).
|
132
2021/day05_hydrothermal_venture/src/lib.rs
Normal file
132
2021/day05_hydrothermal_venture/src/lib.rs
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
use core::fmt::Display;
|
||||||
|
use std::{num::ParseIntError, collections::{HashMap, HashSet}};
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Eq)]
|
||||||
|
pub enum ParseError {
|
||||||
|
ParseIntError(std::num::ParseIntError),
|
||||||
|
LineMalformed(String),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<ParseIntError> for ParseError {
|
||||||
|
fn from(value: ParseIntError) -> Self {
|
||||||
|
Self::ParseIntError(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Display for ParseError {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
match self {
|
||||||
|
Self::ParseIntError(e) => write!(f, "Unable to parse into integer: {e}"),
|
||||||
|
Self::LineMalformed(v) => write!(f, "Line is malformed: {v}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Line {
|
||||||
|
start: (usize, usize),
|
||||||
|
end: (usize, usize),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TryFrom<&str> for Line {
|
||||||
|
type Error = ParseError;
|
||||||
|
|
||||||
|
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
||||||
|
let ends: Vec<_> = value.split_whitespace().collect();
|
||||||
|
if ends.len() != 3 {
|
||||||
|
return Err(Self::Error::LineMalformed(value.to_string()));
|
||||||
|
}
|
||||||
|
|
||||||
|
let start: Vec<_> = ends[0].split(',').collect();
|
||||||
|
let end: Vec<_> = ends[2].split(',').collect();
|
||||||
|
|
||||||
|
if start.len() != 2 || end.len() != 2 {
|
||||||
|
return Err(Self::Error::LineMalformed(value.to_string()));
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(Self {
|
||||||
|
start: (start[0].parse()?, start[1].parse()?),
|
||||||
|
end: (end[0].parse()?, end[1].parse()?),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Line {
|
||||||
|
fn get_horizontal_vertical_coordinates(&self) -> Vec<(usize, usize)> {
|
||||||
|
if self.start.0 == self.end.0 {
|
||||||
|
let x = self.start.0;
|
||||||
|
let min = self.start.1.min(self.end.1);
|
||||||
|
let max = self.start.1.max(self.end.1);
|
||||||
|
|
||||||
|
(min..=max).map(|y| (x, y)).collect()
|
||||||
|
} else if self.start.1 == self.end.1 {
|
||||||
|
let y = self.start.1;
|
||||||
|
let min = self.start.0.min(self.end.0);
|
||||||
|
let max = self.start.0.max(self.end.0);
|
||||||
|
|
||||||
|
(min..=max).map(|x| (x, y)).collect()
|
||||||
|
} else {
|
||||||
|
Vec::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_diagonal_coordingates(&self) -> Vec<(usize, usize)> {
|
||||||
|
if self.start.0 < self.end.0 && self.start.1 < self.end.1 {
|
||||||
|
(0..=self.end.0-self.start.0).map(|f| (self.start.0+f, self.start.1+f)).collect()
|
||||||
|
} else if self.start.0 < self.end.0 && self.start.1 > self.end.1 {
|
||||||
|
(0..=self.end.0-self.start.0).map(|f| (self.start.0+f, self.start.1-f)).collect()
|
||||||
|
} else if self.start.0 > self.end.0 && self.start.1 > self.end.1 {
|
||||||
|
(0..=self.start.0-self.end.0).map(|f| (self.start.0-f, self.start.1-f)).collect()
|
||||||
|
} else if self.start.0 > self.end.0 && self.start.1 < self.end.1 {
|
||||||
|
(0..=self.start.0-self.end.0).map(|f| (self.start.0-f, self.start.1+f)).collect()
|
||||||
|
} else {
|
||||||
|
Vec::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run(input: &str) -> Result<(usize, usize), ParseError> {
|
||||||
|
let lines: Vec<_> = input.lines().map(Line::try_from).collect::<Result<Vec<_>, _>>()?;
|
||||||
|
let mut all_points = HashSet::new();
|
||||||
|
let mut duplicates = HashSet::new();
|
||||||
|
lines.iter().for_each(|line| {
|
||||||
|
line.get_horizontal_vertical_coordinates().iter().for_each(|coord| {
|
||||||
|
if all_points.contains(coord) {
|
||||||
|
duplicates.insert(*coord);
|
||||||
|
}
|
||||||
|
all_points.insert(*coord);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
let first = duplicates.len();
|
||||||
|
lines.iter().for_each(|line| {
|
||||||
|
line.get_diagonal_coordingates().iter().for_each(|coord| {
|
||||||
|
if all_points.contains(coord) {
|
||||||
|
duplicates.insert(*coord);
|
||||||
|
}
|
||||||
|
all_points.insert(*coord);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
let second = duplicates.len();
|
||||||
|
Ok((first, second))
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
use std::fs::read_to_string;
|
||||||
|
|
||||||
|
fn read_file(name: &str) -> String {
|
||||||
|
read_to_string(name).expect(&format!("Unable to read file: {name}")[..]).trim().to_string()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_sample() {
|
||||||
|
let sample_input = read_file("tests/sample_input");
|
||||||
|
assert_eq!(run(&sample_input), Ok((5, 12)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_challenge() {
|
||||||
|
let challenge_input = read_file("tests/challenge_input");
|
||||||
|
assert_eq!(run(&challenge_input), Ok((6007, 19349)));
|
||||||
|
}
|
||||||
|
}
|
500
2021/day05_hydrothermal_venture/tests/challenge_input
Normal file
500
2021/day05_hydrothermal_venture/tests/challenge_input
Normal file
|
@ -0,0 +1,500 @@
|
||||||
|
818,513 -> 818,849
|
||||||
|
259,377 -> 259,599
|
||||||
|
120,758 -> 977,758
|
||||||
|
49,386 -> 170,386
|
||||||
|
773,644 -> 773,745
|
||||||
|
510,958 -> 797,671
|
||||||
|
480,438 -> 14,904
|
||||||
|
475,346 -> 648,173
|
||||||
|
620,167 -> 477,310
|
||||||
|
632,756 -> 275,756
|
||||||
|
225,896 -> 432,896
|
||||||
|
582,450 -> 93,450
|
||||||
|
402,262 -> 254,410
|
||||||
|
915,236 -> 709,236
|
||||||
|
338,530 -> 338,375
|
||||||
|
243,857 -> 370,984
|
||||||
|
32,449 -> 32,26
|
||||||
|
672,832 -> 203,363
|
||||||
|
426,961 -> 426,402
|
||||||
|
108,469 -> 550,27
|
||||||
|
567,698 -> 495,770
|
||||||
|
25,872 -> 861,36
|
||||||
|
12,15 -> 960,963
|
||||||
|
986,159 -> 986,765
|
||||||
|
912,437 -> 714,437
|
||||||
|
476,400 -> 476,873
|
||||||
|
125,52 -> 951,878
|
||||||
|
633,939 -> 633,641
|
||||||
|
12,986 -> 987,11
|
||||||
|
783,204 -> 467,520
|
||||||
|
547,834 -> 413,700
|
||||||
|
879,133 -> 879,890
|
||||||
|
409,128 -> 365,128
|
||||||
|
913,404 -> 913,598
|
||||||
|
798,40 -> 841,40
|
||||||
|
279,410 -> 279,758
|
||||||
|
935,807 -> 959,783
|
||||||
|
389,391 -> 389,38
|
||||||
|
271,736 -> 271,865
|
||||||
|
70,10 -> 814,10
|
||||||
|
694,266 -> 694,92
|
||||||
|
860,128 -> 860,966
|
||||||
|
755,871 -> 608,871
|
||||||
|
519,54 -> 519,833
|
||||||
|
817,733 -> 156,72
|
||||||
|
553,558 -> 726,558
|
||||||
|
152,21 -> 830,699
|
||||||
|
529,721 -> 608,721
|
||||||
|
744,719 -> 744,221
|
||||||
|
962,966 -> 10,14
|
||||||
|
863,813 -> 863,984
|
||||||
|
138,167 -> 801,830
|
||||||
|
926,901 -> 926,769
|
||||||
|
170,630 -> 623,177
|
||||||
|
281,207 -> 510,207
|
||||||
|
41,52 -> 945,956
|
||||||
|
100,204 -> 100,43
|
||||||
|
177,588 -> 469,588
|
||||||
|
946,37 -> 201,782
|
||||||
|
669,89 -> 669,868
|
||||||
|
945,32 -> 46,931
|
||||||
|
673,274 -> 412,274
|
||||||
|
424,979 -> 169,979
|
||||||
|
774,220 -> 774,571
|
||||||
|
684,272 -> 229,272
|
||||||
|
621,458 -> 621,884
|
||||||
|
222,964 -> 222,608
|
||||||
|
953,146 -> 145,954
|
||||||
|
442,736 -> 442,230
|
||||||
|
471,341 -> 471,124
|
||||||
|
632,954 -> 968,954
|
||||||
|
492,562 -> 911,981
|
||||||
|
485,320 -> 485,349
|
||||||
|
888,758 -> 888,23
|
||||||
|
271,555 -> 732,555
|
||||||
|
932,415 -> 792,275
|
||||||
|
399,478 -> 399,472
|
||||||
|
543,774 -> 543,261
|
||||||
|
422,872 -> 422,715
|
||||||
|
524,471 -> 445,471
|
||||||
|
573,513 -> 573,762
|
||||||
|
721,39 -> 482,39
|
||||||
|
379,482 -> 379,479
|
||||||
|
70,770 -> 336,770
|
||||||
|
797,724 -> 797,364
|
||||||
|
498,646 -> 498,410
|
||||||
|
756,19 -> 756,83
|
||||||
|
901,918 -> 11,918
|
||||||
|
572,23 -> 362,23
|
||||||
|
814,563 -> 750,627
|
||||||
|
279,736 -> 249,706
|
||||||
|
509,257 -> 509,897
|
||||||
|
127,374 -> 399,102
|
||||||
|
421,139 -> 607,139
|
||||||
|
79,520 -> 166,607
|
||||||
|
491,779 -> 284,986
|
||||||
|
395,606 -> 395,164
|
||||||
|
958,244 -> 442,760
|
||||||
|
493,509 -> 673,509
|
||||||
|
76,321 -> 482,727
|
||||||
|
903,926 -> 103,126
|
||||||
|
729,689 -> 63,23
|
||||||
|
956,13 -> 198,771
|
||||||
|
973,452 -> 193,452
|
||||||
|
282,362 -> 896,976
|
||||||
|
68,985 -> 985,68
|
||||||
|
148,109 -> 310,109
|
||||||
|
852,920 -> 371,439
|
||||||
|
334,41 -> 864,571
|
||||||
|
258,592 -> 72,778
|
||||||
|
259,990 -> 259,308
|
||||||
|
480,363 -> 480,751
|
||||||
|
943,153 -> 801,153
|
||||||
|
755,172 -> 123,804
|
||||||
|
355,501 -> 437,501
|
||||||
|
666,769 -> 340,769
|
||||||
|
982,10 -> 23,969
|
||||||
|
886,410 -> 886,669
|
||||||
|
454,410 -> 454,218
|
||||||
|
426,688 -> 227,688
|
||||||
|
969,959 -> 207,959
|
||||||
|
586,27 -> 591,22
|
||||||
|
852,133 -> 166,819
|
||||||
|
587,199 -> 781,199
|
||||||
|
78,85 -> 78,394
|
||||||
|
468,162 -> 727,162
|
||||||
|
261,473 -> 573,473
|
||||||
|
924,300 -> 924,873
|
||||||
|
651,817 -> 651,600
|
||||||
|
717,909 -> 717,187
|
||||||
|
898,656 -> 454,656
|
||||||
|
805,873 -> 507,873
|
||||||
|
529,825 -> 529,217
|
||||||
|
578,503 -> 783,503
|
||||||
|
929,663 -> 920,663
|
||||||
|
332,938 -> 332,381
|
||||||
|
710,783 -> 272,783
|
||||||
|
505,863 -> 240,863
|
||||||
|
146,548 -> 146,849
|
||||||
|
71,822 -> 820,73
|
||||||
|
875,883 -> 451,883
|
||||||
|
983,17 -> 30,970
|
||||||
|
646,350 -> 646,330
|
||||||
|
618,430 -> 881,430
|
||||||
|
398,977 -> 643,732
|
||||||
|
839,441 -> 406,874
|
||||||
|
948,358 -> 178,358
|
||||||
|
26,660 -> 26,612
|
||||||
|
418,467 -> 418,115
|
||||||
|
899,936 -> 899,611
|
||||||
|
770,430 -> 770,648
|
||||||
|
653,136 -> 95,694
|
||||||
|
645,153 -> 818,153
|
||||||
|
622,604 -> 77,59
|
||||||
|
470,597 -> 592,719
|
||||||
|
753,921 -> 743,921
|
||||||
|
507,821 -> 507,275
|
||||||
|
696,969 -> 433,969
|
||||||
|
48,284 -> 552,284
|
||||||
|
391,866 -> 187,866
|
||||||
|
571,897 -> 107,433
|
||||||
|
24,466 -> 24,186
|
||||||
|
949,587 -> 582,587
|
||||||
|
541,32 -> 541,583
|
||||||
|
12,984 -> 986,10
|
||||||
|
124,988 -> 124,904
|
||||||
|
209,548 -> 209,12
|
||||||
|
828,652 -> 34,652
|
||||||
|
455,460 -> 905,910
|
||||||
|
632,638 -> 343,638
|
||||||
|
371,275 -> 145,275
|
||||||
|
66,941 -> 945,62
|
||||||
|
672,286 -> 672,301
|
||||||
|
447,45 -> 82,410
|
||||||
|
665,683 -> 487,683
|
||||||
|
410,582 -> 670,842
|
||||||
|
917,705 -> 917,323
|
||||||
|
122,372 -> 403,653
|
||||||
|
970,47 -> 40,977
|
||||||
|
15,707 -> 732,707
|
||||||
|
666,854 -> 666,256
|
||||||
|
640,230 -> 188,230
|
||||||
|
71,297 -> 71,472
|
||||||
|
51,431 -> 339,431
|
||||||
|
957,363 -> 82,363
|
||||||
|
844,171 -> 274,171
|
||||||
|
184,81 -> 184,786
|
||||||
|
437,456 -> 138,456
|
||||||
|
326,478 -> 814,966
|
||||||
|
956,76 -> 226,806
|
||||||
|
399,572 -> 399,877
|
||||||
|
923,813 -> 923,898
|
||||||
|
445,221 -> 947,723
|
||||||
|
85,590 -> 415,590
|
||||||
|
644,127 -> 644,140
|
||||||
|
372,732 -> 372,522
|
||||||
|
413,186 -> 244,186
|
||||||
|
291,163 -> 197,69
|
||||||
|
889,41 -> 208,722
|
||||||
|
835,925 -> 835,616
|
||||||
|
790,340 -> 426,340
|
||||||
|
26,872 -> 805,93
|
||||||
|
617,701 -> 828,701
|
||||||
|
344,654 -> 530,654
|
||||||
|
940,989 -> 41,90
|
||||||
|
642,87 -> 206,523
|
||||||
|
306,54 -> 306,761
|
||||||
|
672,778 -> 672,868
|
||||||
|
29,959 -> 974,14
|
||||||
|
458,166 -> 86,166
|
||||||
|
565,394 -> 352,181
|
||||||
|
516,805 -> 457,805
|
||||||
|
464,450 -> 756,450
|
||||||
|
177,181 -> 661,181
|
||||||
|
962,394 -> 630,62
|
||||||
|
94,613 -> 12,613
|
||||||
|
932,159 -> 818,273
|
||||||
|
640,642 -> 976,642
|
||||||
|
184,346 -> 184,22
|
||||||
|
370,672 -> 458,672
|
||||||
|
235,334 -> 770,869
|
||||||
|
207,17 -> 811,17
|
||||||
|
351,25 -> 896,25
|
||||||
|
589,178 -> 921,510
|
||||||
|
672,733 -> 937,733
|
||||||
|
159,718 -> 787,90
|
||||||
|
598,317 -> 598,455
|
||||||
|
591,164 -> 591,374
|
||||||
|
276,321 -> 515,321
|
||||||
|
245,431 -> 245,350
|
||||||
|
268,976 -> 939,305
|
||||||
|
319,297 -> 823,297
|
||||||
|
246,132 -> 229,132
|
||||||
|
338,707 -> 338,59
|
||||||
|
723,402 -> 723,739
|
||||||
|
539,846 -> 94,846
|
||||||
|
879,458 -> 783,458
|
||||||
|
400,847 -> 770,477
|
||||||
|
111,957 -> 858,210
|
||||||
|
640,340 -> 878,578
|
||||||
|
613,446 -> 115,446
|
||||||
|
119,480 -> 119,425
|
||||||
|
447,34 -> 986,34
|
||||||
|
730,357 -> 532,555
|
||||||
|
85,283 -> 26,283
|
||||||
|
834,327 -> 263,898
|
||||||
|
739,580 -> 640,481
|
||||||
|
841,938 -> 841,123
|
||||||
|
987,979 -> 23,15
|
||||||
|
827,563 -> 632,563
|
||||||
|
313,419 -> 466,572
|
||||||
|
323,326 -> 455,326
|
||||||
|
976,683 -> 976,314
|
||||||
|
896,568 -> 338,568
|
||||||
|
733,464 -> 819,464
|
||||||
|
613,608 -> 493,608
|
||||||
|
178,137 -> 178,663
|
||||||
|
262,595 -> 262,308
|
||||||
|
535,268 -> 851,268
|
||||||
|
653,111 -> 653,723
|
||||||
|
947,47 -> 23,971
|
||||||
|
351,800 -> 351,806
|
||||||
|
143,49 -> 850,756
|
||||||
|
872,643 -> 872,265
|
||||||
|
946,727 -> 427,727
|
||||||
|
354,284 -> 938,868
|
||||||
|
652,874 -> 652,447
|
||||||
|
920,27 -> 387,27
|
||||||
|
816,265 -> 816,366
|
||||||
|
238,632 -> 336,534
|
||||||
|
593,399 -> 593,425
|
||||||
|
696,108 -> 138,666
|
||||||
|
828,110 -> 240,698
|
||||||
|
421,590 -> 847,590
|
||||||
|
409,449 -> 622,449
|
||||||
|
986,291 -> 45,291
|
||||||
|
580,34 -> 663,34
|
||||||
|
921,988 -> 35,102
|
||||||
|
619,88 -> 249,88
|
||||||
|
48,773 -> 503,773
|
||||||
|
277,560 -> 377,460
|
||||||
|
139,803 -> 123,787
|
||||||
|
339,688 -> 907,120
|
||||||
|
775,117 -> 775,203
|
||||||
|
237,287 -> 507,557
|
||||||
|
27,832 -> 429,430
|
||||||
|
70,592 -> 672,592
|
||||||
|
701,295 -> 69,295
|
||||||
|
723,672 -> 714,672
|
||||||
|
974,359 -> 292,359
|
||||||
|
439,462 -> 439,973
|
||||||
|
681,922 -> 357,922
|
||||||
|
402,521 -> 25,521
|
||||||
|
297,525 -> 297,227
|
||||||
|
763,797 -> 763,153
|
||||||
|
737,634 -> 869,634
|
||||||
|
379,875 -> 810,875
|
||||||
|
427,117 -> 705,117
|
||||||
|
785,376 -> 265,896
|
||||||
|
922,818 -> 141,37
|
||||||
|
61,371 -> 61,432
|
||||||
|
557,303 -> 411,303
|
||||||
|
573,100 -> 295,100
|
||||||
|
767,657 -> 231,657
|
||||||
|
11,938 -> 875,74
|
||||||
|
782,393 -> 782,502
|
||||||
|
899,913 -> 519,533
|
||||||
|
887,11 -> 244,654
|
||||||
|
730,271 -> 426,271
|
||||||
|
555,538 -> 379,538
|
||||||
|
871,866 -> 871,461
|
||||||
|
934,178 -> 934,845
|
||||||
|
741,327 -> 325,327
|
||||||
|
332,394 -> 518,580
|
||||||
|
673,372 -> 809,236
|
||||||
|
951,972 -> 77,98
|
||||||
|
985,585 -> 985,55
|
||||||
|
604,341 -> 269,676
|
||||||
|
408,70 -> 455,23
|
||||||
|
718,239 -> 718,522
|
||||||
|
15,16 -> 984,985
|
||||||
|
743,836 -> 852,836
|
||||||
|
407,59 -> 246,220
|
||||||
|
388,538 -> 388,587
|
||||||
|
978,249 -> 810,249
|
||||||
|
506,945 -> 506,644
|
||||||
|
657,101 -> 657,522
|
||||||
|
879,261 -> 935,261
|
||||||
|
751,625 -> 926,800
|
||||||
|
676,183 -> 573,286
|
||||||
|
272,491 -> 765,984
|
||||||
|
867,207 -> 570,207
|
||||||
|
117,784 -> 750,784
|
||||||
|
883,528 -> 883,845
|
||||||
|
430,765 -> 581,614
|
||||||
|
748,839 -> 748,775
|
||||||
|
265,16 -> 188,93
|
||||||
|
894,584 -> 525,215
|
||||||
|
278,414 -> 19,673
|
||||||
|
588,446 -> 588,656
|
||||||
|
469,676 -> 469,354
|
||||||
|
383,848 -> 669,848
|
||||||
|
212,341 -> 367,341
|
||||||
|
988,582 -> 988,825
|
||||||
|
296,187 -> 785,187
|
||||||
|
255,400 -> 255,286
|
||||||
|
756,886 -> 524,654
|
||||||
|
966,32 -> 966,940
|
||||||
|
711,243 -> 81,873
|
||||||
|
207,34 -> 359,186
|
||||||
|
555,850 -> 45,850
|
||||||
|
41,962 -> 947,56
|
||||||
|
15,888 -> 15,795
|
||||||
|
773,709 -> 579,515
|
||||||
|
228,517 -> 228,334
|
||||||
|
495,290 -> 965,290
|
||||||
|
462,309 -> 462,421
|
||||||
|
945,274 -> 945,735
|
||||||
|
547,361 -> 547,140
|
||||||
|
37,930 -> 836,930
|
||||||
|
987,445 -> 45,445
|
||||||
|
25,766 -> 757,34
|
||||||
|
643,946 -> 318,621
|
||||||
|
507,402 -> 507,981
|
||||||
|
22,903 -> 488,437
|
||||||
|
887,487 -> 957,487
|
||||||
|
57,434 -> 21,398
|
||||||
|
688,907 -> 917,678
|
||||||
|
146,498 -> 146,965
|
||||||
|
375,939 -> 888,426
|
||||||
|
966,151 -> 684,433
|
||||||
|
160,373 -> 722,373
|
||||||
|
410,571 -> 410,683
|
||||||
|
588,667 -> 588,337
|
||||||
|
832,348 -> 376,804
|
||||||
|
567,430 -> 453,430
|
||||||
|
368,442 -> 97,442
|
||||||
|
11,191 -> 584,764
|
||||||
|
647,965 -> 647,331
|
||||||
|
576,856 -> 976,456
|
||||||
|
205,287 -> 205,495
|
||||||
|
677,872 -> 677,246
|
||||||
|
21,16 -> 973,968
|
||||||
|
949,738 -> 126,738
|
||||||
|
921,595 -> 921,370
|
||||||
|
539,821 -> 660,821
|
||||||
|
143,188 -> 143,793
|
||||||
|
639,930 -> 639,454
|
||||||
|
522,360 -> 917,755
|
||||||
|
128,281 -> 647,800
|
||||||
|
456,365 -> 456,34
|
||||||
|
434,530 -> 431,530
|
||||||
|
549,792 -> 549,892
|
||||||
|
414,229 -> 41,602
|
||||||
|
289,468 -> 592,771
|
||||||
|
555,624 -> 727,452
|
||||||
|
187,780 -> 187,838
|
||||||
|
807,282 -> 807,968
|
||||||
|
52,249 -> 52,332
|
||||||
|
797,525 -> 462,190
|
||||||
|
295,562 -> 654,921
|
||||||
|
862,627 -> 252,627
|
||||||
|
22,116 -> 866,960
|
||||||
|
155,652 -> 155,979
|
||||||
|
598,748 -> 51,748
|
||||||
|
130,601 -> 231,601
|
||||||
|
468,183 -> 468,414
|
||||||
|
208,193 -> 927,912
|
||||||
|
25,755 -> 770,755
|
||||||
|
667,755 -> 916,506
|
||||||
|
395,103 -> 395,468
|
||||||
|
763,62 -> 763,153
|
||||||
|
371,816 -> 371,109
|
||||||
|
508,138 -> 37,609
|
||||||
|
464,983 -> 707,983
|
||||||
|
282,295 -> 282,536
|
||||||
|
646,680 -> 646,775
|
||||||
|
95,117 -> 95,62
|
||||||
|
606,963 -> 203,963
|
||||||
|
403,195 -> 97,195
|
||||||
|
743,293 -> 743,815
|
||||||
|
243,748 -> 431,748
|
||||||
|
953,54 -> 22,985
|
||||||
|
693,810 -> 656,810
|
||||||
|
163,221 -> 728,786
|
||||||
|
187,648 -> 187,337
|
||||||
|
98,559 -> 98,165
|
||||||
|
903,49 -> 46,906
|
||||||
|
600,779 -> 432,779
|
||||||
|
500,606 -> 500,878
|
||||||
|
812,797 -> 31,16
|
||||||
|
204,786 -> 517,786
|
||||||
|
952,757 -> 952,923
|
||||||
|
66,809 -> 66,831
|
||||||
|
479,72 -> 17,72
|
||||||
|
96,430 -> 96,932
|
||||||
|
346,667 -> 796,667
|
||||||
|
731,102 -> 162,102
|
||||||
|
755,846 -> 755,135
|
||||||
|
90,18 -> 404,18
|
||||||
|
828,802 -> 134,108
|
||||||
|
278,946 -> 278,765
|
||||||
|
289,163 -> 869,743
|
||||||
|
134,58 -> 887,58
|
||||||
|
354,735 -> 904,185
|
||||||
|
897,74 -> 897,716
|
||||||
|
508,904 -> 508,719
|
||||||
|
285,358 -> 795,868
|
||||||
|
51,155 -> 51,643
|
||||||
|
579,388 -> 431,240
|
||||||
|
79,330 -> 869,330
|
||||||
|
955,863 -> 140,48
|
||||||
|
800,473 -> 689,473
|
||||||
|
711,128 -> 918,128
|
||||||
|
787,166 -> 787,36
|
||||||
|
257,684 -> 873,68
|
||||||
|
984,986 -> 10,12
|
||||||
|
76,580 -> 660,580
|
||||||
|
265,868 -> 955,868
|
||||||
|
569,491 -> 466,594
|
||||||
|
535,654 -> 37,654
|
||||||
|
889,751 -> 411,273
|
||||||
|
681,491 -> 600,491
|
||||||
|
459,721 -> 459,109
|
||||||
|
824,130 -> 689,265
|
||||||
|
406,780 -> 406,965
|
||||||
|
18,31 -> 904,917
|
||||||
|
179,91 -> 232,38
|
||||||
|
280,552 -> 428,700
|
||||||
|
967,980 -> 19,32
|
||||||
|
47,289 -> 738,980
|
||||||
|
160,592 -> 120,592
|
||||||
|
710,412 -> 28,412
|
||||||
|
40,430 -> 747,430
|
||||||
|
435,821 -> 747,509
|
||||||
|
36,741 -> 36,363
|
||||||
|
787,30 -> 847,30
|
||||||
|
725,968 -> 725,940
|
||||||
|
739,356 -> 27,356
|
||||||
|
65,193 -> 419,193
|
||||||
|
318,513 -> 404,513
|
||||||
|
150,230 -> 150,968
|
||||||
|
847,410 -> 847,505
|
||||||
|
950,188 -> 950,278
|
||||||
|
816,312 -> 587,541
|
||||||
|
980,145 -> 154,145
|
||||||
|
79,781 -> 616,781
|
||||||
|
433,284 -> 433,309
|
||||||
|
624,264 -> 569,264
|
||||||
|
604,859 -> 570,825
|
||||||
|
936,691 -> 350,105
|
||||||
|
259,631 -> 648,242
|
||||||
|
445,27 -> 445,872
|
||||||
|
438,689 -> 977,150
|
||||||
|
718,603 -> 718,327
|
||||||
|
967,310 -> 98,310
|
||||||
|
439,381 -> 439,35
|
||||||
|
645,240 -> 282,240
|
||||||
|
475,54 -> 475,658
|
||||||
|
972,610 -> 759,823
|
10
2021/day05_hydrothermal_venture/tests/sample_input
Normal file
10
2021/day05_hydrothermal_venture/tests/sample_input
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
0,9 -> 5,9
|
||||||
|
8,0 -> 0,8
|
||||||
|
9,4 -> 3,4
|
||||||
|
2,2 -> 2,1
|
||||||
|
7,0 -> 7,4
|
||||||
|
6,4 -> 2,0
|
||||||
|
0,9 -> 2,9
|
||||||
|
3,4 -> 1,4
|
||||||
|
0,0 -> 8,8
|
||||||
|
5,5 -> 8,2
|
Loading…
Add table
Add a link
Reference in a new issue