blob: baaad3fdc91ad5c75c18d0edeb333d49e94e4e87 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
use std::cmp::Ordering;
mod common;
use common::*;
fn driver(n: i64) -> Packet {
Packet::List(vec![Packet::List(vec![Packet::Number(n)])])
}
fn find_driver(v: &Vec<Packet>, n: i64) -> usize {
v.iter()
.position(|p| compare(p, &driver(n)) == Ordering::Equal)
.unwrap() + 1
}
fn main() {
let mut v = vec![driver(2), driver(6)];
let mut line = String::new();
while std::io::stdin().read_line(&mut line).unwrap() > 0 {
if line.len() > 1 { v.push(parse(line.as_bytes())); }
line.clear();
}
v.sort_by(compare);
println!("{}", find_driver(&v, 2) * find_driver(&v, 6));
}
|