aoc

My solutions for the Advent of Code
git clone https://git.tronto.net/aoc
Download | Log | Files | Refs | README

b.rs (627B)


      1 use std::cmp::Ordering;
      2 mod common;
      3 use common::*;
      4 
      5 fn driver(n: i64) -> Packet {
      6     Packet::List(vec![Packet::List(vec![Packet::Number(n)])])
      7 }
      8 
      9 fn 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 
     15 fn 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 }