aoc

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

a.rs (511B)


      1 mod common;
      2 use common::*;
      3 
      4 pub fn calculate(name: &str, monkeys: &Vec<Monkey>) -> i64 {
      5     let i = monkeys.iter().position(|m| m.name == name).unwrap();
      6     match &monkeys[i].kind {
      7         MonkeyType::Num(n) => *n,
      8         MonkeyType::Op(op) => {
      9             let n1 = calculate(&op.m1, &monkeys);
     10             let n2 = calculate(&op.m2, &monkeys);
     11             apply_op(n1, n2, op)
     12         }
     13     }
     14 }
     15 
     16 fn main() {
     17     let monkeys = read_monkeys_from_stdin();
     18     println!("{}", calculate(&"root", &monkeys));
     19 }