aboutsummaryrefslogtreecommitdiff
path: root/2022/13/b.rs
diff options
context:
space:
mode:
Diffstat (limited to '2022/13/b.rs')
-rw-r--r--2022/13/b.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/2022/13/b.rs b/2022/13/b.rs
new file mode 100644
index 0000000..baaad3f
--- /dev/null
+++ b/2022/13/b.rs
@@ -0,0 +1,26 @@
1use std::cmp::Ordering;
2mod common;
3use common::*;
4
5fn driver(n: i64) -> Packet {
6 Packet::List(vec![Packet::List(vec![Packet::Number(n)])])
7}
8
9fn find_driver(v: &Vec<Packet>, n: i64) -> usize {
10 v.iter()
11 .position(|p| compare(p, &driver(n)) == Ordering::Equal)
12 .unwrap() + 1
13}
14
15fn main() {
16 let mut v = vec![driver(2), driver(6)];
17 let mut line = String::new();
18 while std::io::stdin().read_line(&mut line).unwrap() > 0 {
19 if line.len() > 1 { v.push(parse(line.as_bytes())); }
20 line.clear();
21 }
22
23 v.sort_by(compare);
24
25 println!("{}", find_driver(&v, 2) * find_driver(&v, 6));
26}

Generated with cgit - Back to sebastiano.tronto.net