From a8e74eae933bd088ffc7d798c7be4ec4b3b5f194 Mon Sep 17 00:00:00 2001 From: Christian Ulrich Date: Wed, 14 Dec 2022 01:38:07 +0100 Subject: [PATCH] add day 13, part 1 --- day13/common.rs | 130 ++++++++++++++ day13/input | 450 ++++++++++++++++++++++++++++++++++++++++++++++++ day13/part1.rs | 30 ++++ day13/testinput | 24 +++ 4 files changed, 634 insertions(+) create mode 100644 day13/common.rs create mode 100644 day13/input create mode 100644 day13/part1.rs create mode 100644 day13/testinput diff --git a/day13/common.rs b/day13/common.rs new file mode 100644 index 0000000..3e1b1f6 --- /dev/null +++ b/day13/common.rs @@ -0,0 +1,130 @@ +// Copyright 2022 Christian Ulrich +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use std::cmp::{Ordering, PartialOrd}; +use std::io; + +#[derive(Debug, PartialEq, Clone)] +pub enum Token { + Integer(u64), + List(Vec), +} + +pub struct PacketPairs {} + +impl Token { + fn parse_integer(input: &str) -> Result { + Ok(Self::Integer( + input.parse().map_err(|_| "cannot parse integer")?, + )) + } + + fn parse_list(input: &str) -> Result { + let mut elements = Vec::new(); + let mut element = String::new(); + let mut bracket_counter = 0; + for c in input.chars() { + match c { + ']' if { bracket_counter > 0 } => { + element.push(c); + bracket_counter -= 1; + } + '[' => { + element.push(c); + bracket_counter += 1; + } + ',' if { bracket_counter == 0 } => { + elements.push(Self::from_str(&element)?); + element.clear(); + } + _ => element.push(c), + } + } + if element.len() > 0 { + elements.push(Self::from_str(&element)?); + } + Ok(Self::List(elements)) + } + + pub fn from_str(input: &str) -> Result { + let input = input.trim(); + if input.starts_with('[') && input.ends_with(']') { + Self::parse_list(&input[1..input.len() - 1]) + } else { + Self::parse_integer(input) + } + } +} + +impl PartialOrd for Token { + fn partial_cmp(&self, other: &Self) -> Option { + type T = Token; + + match (self, other) { + (T::Integer(a), T::Integer(b)) => a.partial_cmp(b), + (T::List(a), T::List(b)) => { + let common_len = usize::min(a.len(), b.len()); + for (left, right) in Iterator::zip(a[..common_len].iter(), b[..common_len].iter()) { + if left > right { + return Some(Ordering::Greater); + } + if left < right { + return Some(Ordering::Less); + } + } + if a.len() > common_len { + return Some(Ordering::Greater); + } + if b.len() > common_len { + return Some(Ordering::Less); + } + Some(Ordering::Equal) + } + (T::List(_), T::Integer(_)) => self.partial_cmp(&T::List(vec![other.clone()])), + (T::Integer(_), T::List(_)) => T::List(vec![self.clone()]).partial_cmp(other), + } + } +} + +pub fn packet_pairs() -> PacketPairs { + PacketPairs {} +} + +impl Iterator for PacketPairs { + type Item = Result<(Token, Token), &'static str>; + + fn next(&mut self) -> Option { + const ERROR: &str = "cannot parse packet pair"; + + let left = match io::stdin().lines().next()?.unwrap().as_str() { + "" => return None, + line => Token::from_str(&line), + }; + let right = match io::stdin().lines().next()?.unwrap().as_str() { + "" => return None, + line => Token::from_str(&line), + }; + match io::stdin().lines().next()?.unwrap().as_str() { + "" => match (left, right) { + (Ok(left), Ok(right)) => Some(Ok((left, right))), + e => { + println!("{:?}", e); + Some(Err(ERROR)) + } + }, + _ => Some(Err(ERROR)), + } + } +} diff --git a/day13/input b/day13/input new file mode 100644 index 0000000..a67d9d5 --- /dev/null +++ b/day13/input @@ -0,0 +1,450 @@ +[[[[4,7,7],0,4,[6,3,3,7,10],2],2,[[3]]],[]] +[[[[1,4,8],[3,3,1,4]]]] + +[[7,6],[],[[5],0,10,[7,9,[7],0]]] +[[[[6,9,0]],0]] + +[[7,7,[[5,1,4,9,4],8,[8],[1,1,6,2]],[[],3,6,[],[]]],[],[10,2,7],[0,[1,2,4,1,0],[1,[],0],5,[]],[4,[[],[],[]],[]]] +[[3,6],[[9,6,[]],8,[8,8,3,[8,2,3,10],[6,5]],[6,4,[8,5],8]]] + +[[[[4,8,1,3,4],[2,4,10,5,4],[7,7],7],[[9,8,4,7,0]],8,[3,1]],[[],[[9,3],5],[],7,[[],8,8,[6,0,3,10,2],[0,8,7,0]]],[9,[4],7,3]] +[[5],[[[],[],[7,10]],3,6],[[[],4,[8,6,3,1],0,[5,1,0,4]],[],[[9,5]],4]] + +[[6,10,9,[],[[2]]],[9,[10,[3,5,0],[6,5]]],[],[[8,[2,2,3]],6]] +[[],[[],9,[9,2,[6,8,10,3],2],9,3]] + +[[[[3],[]],5],[[],[7,[3,3,3],2,[1],[6,7,9]],[],8,1],[9,[0,0,[5,3,5,1],[2],2],3],[2,[0,4]]] +[[[]],[[[],10,[8,0,5,5],[5,4,8,10,1],[6,8,0,3,5]],2,[9,[5],[9,2],[]],[8,[]]]] + +[[3],[[8],6,5],[]] +[[],[0],[],[3,0],[]] + +[[0,[[9],[],[6,10,9,9,6],[1,1,10,6],[1,2,6]]],[]] +[[[3,[5,3,7,10,5],[9,2,1]],[[3,7,0,6]],[[]],[4,[1]],[8,8,[2,4,8,3]]],[[5,6],[]],[[],5],[]] + +[[3,4,[[1,6,10],[10],[1],[]],8,[[4,10,3]]],[9,8,0,0]] +[[0,[9],[],9,0],[6],[[0,7],0,[[10],[8,5],[3,3,6,2,7]]],[[[2,7],1,10,6],[]]] + +[[[],5,10,[7,0,[3,0,1,0]],6],[[[7,10,3,9],2,[5,6],3,[4,0]]],[[],[6,[3],[5,0,8,2],[0,9,10,5,5]]]] +[[9,1,0,4],[]] + +[[0,0,2,6,[[3],[3,4,7],[10,8,7,9],[4],4]],[[3,[]],8,[[10],8,3,[4,4,8],[0,2,9,7]]],[]] +[[[4,1],4,8]] + +[[[[1,9,4,3,8]],[[2,8,0,9,0],0,4,5,[2,9,5,1,8]],8,3],[[[4],1,8,[5,8],[4,0]]],[[0,7,[8,1,4,0,5],7],[[8],[],[0,8,5,7,5],6],0,[[4]]],[[],9,4,[6,[],[1,2,3,10],1],[[6,0],[8],5,6]]] +[[[5,[]],[],0],[[5,4]]] + +[[[6],[],1],[0,[7,1]]] +[[[6],5,4,10],[8],[[[6,0,1,4,4],7,[],6]],[10,4],[[[3],[0,0,1],3]]] + +[[[6,[9,10]],[[],3,[8,3],3,[3]]]] +[[[7,0,9,[8]],[[3,2,9,6,1],6,[4]]],[[[5,2,2],1,0,9],8,4,10]] + +[[2],[]] +[[5],[[[4,3,5],[5,9,10,6,7],[5],4,[9,7,6,2]],2,[]]] + +[[2,0,[[]]]] +[[[[8,2,8,8,6]]],[7,[[4,0,8,9,9],10,3,[],[5,7,6]],9,3,9],[7,[1,9],[6,[],3],10,1],[[]]] + +[[[2,10,7,[8]]]] +[[3,[[2,5,2]],[8],[],[[]]],[]] + +[[[5,7,4,0,[3,9,0,7,4]],[]],[7,4],[2],[[[5]]],[[[3,7]],[9],[5,[4,0],4,3,8]]] +[[9,[8,[],[2,3],[9,2,10]],[]],[1,1,[9,7,[0],[8,10,7,10,4]],8,[]],[7],[[7,[10,1,5,7,7],8,[3]]]] + +[[],[[[5,4,7,10,3]],0],[],[[4]],[[],[2,0],1,[[4,0,6,9,1],[5,5,0,8,9],[4],[]]]] +[[[],6,[7,8],1,0]] + +[[[4,[7,1,9,4,0],[10,8,8,3],[7,10,4,3,9]],2,[3]],[[[]],[9,[10],8,0,10],4],[],[[1,4,7,[]],3],[[[4,1],[4,0]],[[10,3],[10,7],1],3,[9,[3,6,10,4,3]],0]] +[[[0,[0,10]]],[[],[],[0,[],[1,0,5,3],1,7],[7,4],2],[[7],8],[[[7,8],[10,2,0,5,1],[8,6]]],[[6,[7],[1,5,1,5],9]]] + +[[[5,[7,8,0,6],0,4],[[6],1],[1,[0,0,6,9]],[10,[5,4,4],[8,9,7,8,1],[9,8,3]],[[6,7,5],10]],[[2]]] +[[[[4,4,1,0],[1,5,7,7]],[9,[6,7,6,7],7,[0]],2,[[3,1,4,4,5],[0,4],[3,5,7]]],[[3,5],4,5,3,6],[1,9,[[9,10,2,10],5,[9,9],[3,0,0],7],0],[5,5]] + +[[2,3]] +[[],[8,5],[[[7,4,4,10,8],[],[10,6,10]],8,4,1]] + +[[[[],8],[10,2,[],4,[5,9,4,3]],[[0,1]]],[1,10],[5,6,10,[10,[3,10],[]]],[9,[2,[0,7,1,8],5],[6],1]] +[[3,[8],3,[4,10,[5,10],3,10]]] + +[[0],[0,[[1,6,10],[5,3,10],1,[7,10]],1]] +[[],[5,0],[[4,[1,8,4],[8],[3,1]],6,[9,[3],10,8,[1,8,2,1,6]],3,[[8],0,4,6]],[[[10,1,1,9],0],[1,[],[1,6,8,9],[0,5,6,8,1],[2]],[9,[2],[9,0,4,6],[4,0,6,4]],[[9,9,5,9],1]],[2,[],[5,[2,1],7,[],10]]] + +[[10,1,9,6,[[8],5,1,[5,4],[5,0]]],[[[7,6,1],10,10,[2,8,5,3,1],5],7,[[2,5,6,7,1],5,[]]]] +[[6,[[10],[7,9,2,0],8],2,3,[]]] + +[[],[0,5,8,3,[]],[[5,5,[],[10,10,4]]],[8],[8]] +[[5],[7,2,5]] + +[[],[],[5],[]] +[[],[[2,[0],8],[[9,0,6,6,1],2,2,[0],[]],5,9],[[],3,7]] + +[[5,[[8],5,[5],[5,5],[10,5,9]],[[5,1],[1,10,6,8]],8,[[2,9]]],[[[0,8,5],10,[9,6,4],2,8],5,7,0]] +[[8,[8,[5,1,2,5],[5,10,6,5,3],0],6,10,1]] + +[[8,6,[[],[6,3],10,9],7]] +[[[4,[7,6,7,2,5]],[[10,4,8,10]],6,[[4,5,2,10,7]]],[[[1,9,10,6]],[9,[],[8,0,4,1]],10,6],[],[10,[[6,0],[1,9,9,10,5],[8,9],6,7],[1,9]],[0,[[6,3],8,[3],[],1],[[1,1],[],6,1,[10]]]] + +[[10,9,[4,[7,6,3],5,[]],[],[3,0,2,3,[10,6,10]]],[2,[[1,10],6,[9,5],[4],8]],[[[2],[2,8]],[2,1],6,[],4]] +[[5],[9]] + +[[[],[[0,4,6,4],2],0,5],[6,[[],5,2,2,[]],[0,[9,0,5]]]] +[[1,6,2,7],[2,5,0,2,[7,2]],[[9,9,2,[6,0,6,3,9]],[],[],0,8]] + +[[[4],5,[],3],[[[],5,5,[9,4,7,3]],[],3],[],[[2,4,[0,0],10,[]]]] +[[],[[[7,0,8],[6,9,0,0,2],[5,6,10,7]]],[4,8],[8,7],[[0,[0,10],[5],0,[1]],[5,0,[9,3,4,9]]]] + +[[[1],3],[],[]] +[[10,[[2,2],[6],[8],5]],[8,4]] + +[[9,[],8,[[9,4,10],5,3,[7,6,0,6]],2],[],[[3],4,[5],[8,[0,0,9,3],10,[],[]],[[7,6,7],9,[4,2,6],[0,7]]]] +[[],[3,2,[1,7,[3,1,10],[6,3,1,5,1],2]]] + +[[[3,[4,2,7,9],[8,7,2,10,8],[5,3,10],[9]],[[1,2,5],10,[5,4,7],[2,0,7,5],[1,4,3]],[2,[],3,[]]],[],[],[[5,10],6]] +[[[[5,10]],[[10],2,[9,6],[6,9]],1],[[[0,2,7,6,0],[3,4],[5,2],2,4],[],[2,[],[7,10,4],2],[[3]]],[[],[1,8,[7,0,1]],8,8],[[[8,1],[1,5,10]],[[2,0,8,4,2],2,4,7,[4,0]],9,[7,10,1],8],[5]] + +[[[4],[],[8],1],[[],4,0,4,[[2,5,7],0,[1,9,6,6],[6,2,0,0]]]] +[[1,[[3]],[2,3,6,[4,5,3,4]],8],[[],2],[5,0,[[8],[4,0,4,9]],[3],1],[10],[3,2,3,5,[10,9,[2,6,4]]]] + +[[1,[[5,8],[0,5,4],[1,8],9],9,[[5,4],[0,1,4,2,7],[7,1,8,5,8],[3,6,8],9]],[[[2,7,9,3],4,[6,2,1],7],4,10],[6,1,2]] +[[5,0,[[9],[10],[2,7,5],[7,6,6,5],2]],[4],[2,10,1,[[],4],[[],0,[0,4,8,7]]],[[[],8],5,[10],[4,[],7]],[]] + +[[[1,[4,6,6,5]],[[8,1,2,2,4],2,[1]],7,5,2],[8,2,3,2],[[],[5,10,4,[]]]] +[[3],[[]],[[10]],[[0,[3,9,10],9,6],10,6,6,1],[[4,8,2,2,[10]],[[]],[2,6],[0,[2],2,[8,0,1,2],3],5]] + +[[[[7,4,7,8,10]],[[10,7,8,5],[1,6,7,4,2],3,[5,7,2,4,2],4]],[4,10,6,1,[[8,0,5,8],1,[2,3,0,9,4],[6,10,1,9,10],[9,0,9]]],[1,9,5]] +[[[3,5,5],10,5,[],[[1,0,2],7,[1,1,2,9,2]]],[[],[[2,3,7,9],[],2,4,4],8,10],[],[5,[[2,1],3]]] + +[[7,9,9,[[7,6],8],5],[0,10,[3,5,1,[0,10,1,8]]],[[[10]],[8,[2,0,10,9,1],7,[8,1,7],[0,8,3]]],[[9,[0,0,9,3],[5,0,10,7,10]],[],[10,7],[],[[10,6,10],[10,3,4,8],1,[]]],[3,[],[[],[7,10],0],[]]] +[[[7]]] + +[[4,[4,[2,10,7,1,9]],5],[9,3,[[6,7,2,5],[4,7],[10,7,5],[5,9,5,9]]],[5,[],[10,[2,9],8,[]]],[[[6],8,3],8]] +[[9,[2,10,6,7],5],[7,[7,[6,10,2],[6,4,3,4]],8]] + +[[3,[3,[2,8,4,3],9,10,[]],[4]],[8],[[2,[8,0,0,9],9,5,0],9]] +[[[],8,[5,[0,0,10],8,0]],[[0,[5,4,8,5,10],10,[10,0],9]],[10,3,6,6,[]],[6],[9,7,[3,10,6,[3,2]],0,[3,[6,0,2]]]] + +[[7,[5,[3],2],1,2,[8,8,[1],3]]] +[[5,6,[[2],4,3],[9,2,3,9]]] + +[[],[6,8,2,7,3],[[[3,5,0,5,4],[0,0,3,8],[2,8,3,4],0],[],[[5,5]]],[9,[3,[],6,9,6],[5,[10,4,9,1,3],9]],[5,[],10]] +[[8],[1],[[],5,[[4,5],[],3],6,[[4,10,2,0],1,[4,7,8,10,10],[5,0,10]]],[2],[[5,[],[10],6,[2]],[[9,10]],[0,2,5],3,9]] + +[[6,3,6,2]] +[[],[[8,[7,3,4,3]],[[7,1],[2,0,9,3],3],9],[3,[[8,3,7,3],[2,4,3,0],5,[5,4,6,5]],2,0,7],[4,[5],[[],[],3],7,4]] + +[[[],6,[],[[9,8,2,3,8],4,[5],[1,0],[5,4,2,9,7]],[1]],[3,[]],[[[1,4],[4,8,7],[5,1,1]],[[9,9,0,5,4]],[9,[]]]] +[[[]],[[[3],9,4,[]],[[2,6,3,10],[5,8,9,5,8],[5,5,2,7,1],10,[2,8,0,4,10]]],[],[[[2,5,10,7],10,3],6,[[10]],[[5,3,0,7,1],6],4]] + +[[]] +[] + +[[8],[[[1,10],2,[5],5],[]],[[[8,5,2],[8,5],[5,10,4],[9,9,10],9]],[[[]],1],[4,[],[3,[],[10],3,[8,8]],[[9,4]]]] +[[[[8,8],[7,1,8,4],[8,2,1],[4,5,4],9],9,[],1],[[5,1],[[3],9,1],9,7],[[0,10,8,4,[0]],[[2,0,9,9,6]],0,3,10]] + +[[9,[[6,2,10],10,[6],[7,3]],4,8,[[1,1,9,2]]]] +[[[],[7,9],4,[[1,9,8,10],[5,1,5,4],[9],[0,0,10]]],[3,3,9,[[7],10]],[[[],5,0,5,9],[[10],1,[],1,[7,6]],9,1],[[[2,9,4,1]],4,4,[7,7,[7,3,9,8],[2,6,7,9,2]],[5,[],2,8,3]]] + +[[[[3,10,6,6,6],0,[1,2,3,3,9]],2]] +[[10,3,[]],[3,2,[]],[[10,[2]],5,8],[3,3],[[4,[],6,4,6],6,1,7,[3,4,3,[4,9,6,2]]]] + +[[5],[[6,8]],[7,0]] +[[[],[0,6,[],9],[[4,1,3,1],7,0],[6,[4,6],[]],[4,3]],[],[[8,[3,9],[],[5,10,4],[4,0,4]],[[7,4,10,4,2],[5,7,5],[5,1],0,[6]]],[4,[[2,3,0,0,6]],2]] + +[[8,6],[[5,[9,2,5,7,9]],[[5,9],[5,6,3,10],5],[[5,10,6,3,6],[3,1,4,1],[8,7]]],[[],[0,10,[1,3,5,6]]],[]] +[[8,[6,1,8,[],6],3,[7]]] + +[[1,8,3,[[2,2,0,4],3,[],8,5]],[5,[[6,3,1,9],6,9,[7,6]],5,9]] +[[[[2,8,2],9,[9],2],2,2,[],[6,6]],[[[],[4],[6,5,1,0,7],[9,5,5,1],[2,6,2]],[4,[0,3,3,5]],[]],[6]] + +[[[[3,7,10],1,[6,2,1,10],[2],6],5],[]] +[[3,3,3,[9,6,[],[10,8,9]],9],[10,[[8,9,8,6],[10,2],[2,7,2,0,1],3],[0,8,[]],10,7]] + +[[[9,7],[0,4,7,7,7],[[3,6,8,7,2],[],5,[2]],5]] +[[],[[[]],4,[[5],8,[],[],[10,1]],[],[3,2,[],9]]] + +[[],[5,1,9,1]] +[[5,[10,[10,4,10],[4,6],8,[5]],5,5],[[[]],1,1,[]],[3,5,3]] + +[[],[3,10,[3,[5],9,[]],[0]]] +[[[7,1],[[6,5],5]],[10,[5,7,[5,1],[]]],[[1],[4]],[6]] + +[[[[0,5,2],[6],[3,9]],[[10,3,2],3,[1,1,5]],9,[8,9,[9],10]],[[[1,9],0,9],1,[0,4,6],2],[[],4,[[],5]],[4,[6,[8],10],[],[[],[9],[1],[0,3,5,6],7]],[]] +[[3,[6,7,[],1,5],[8],[3]],[10],[1,6,10,6,[7,6]],[10,[[2]],7]] + +[[0],[],[2,4,2,[7,[7,2,0,1],5,1],0]] +[[[[1,7,3],6,3],9,9,[[0],4,5,[2,3,2,1],[6,4]]]] + +[[0,[3,[9,3,2],[7,9,10,4],[7,6,6,10]],[4,[5,7,0],5,1,6],10,[4,[9,2,9],0]],[5,[[10,9,4,0],1,[6],6],[2,9,[],[5,9],[]],[10,[],[],[1,4]]],[[7,9,[7,8]]]] +[[5,[10,2,[4,7],[]],[0,0,[7,4]]]] + +[[],[[8,[6,10,7],4],0],[],[4,0,[4,0],7,1],[4,10,[[9,7,3],[7,4,9,9,7],5,5]]] +[[[3]]] + +[[],[[1,5,[9,0,7,6,2],10,0],[]]] +[[[10,[10,8],[2,0]],6,4,10],[],[8],[]] + +[[3],[[6,[6,4,4,7,7],[5,4,6,4,7],[0]],[[9,4,10]]],[10,[10,[7,9,2,4],8,9,7],10]] +[[[[7],[7,2,4,8]],[3,[5],8,5],[[7,7,2,8,2],[1,10,8,2,10],[2]],6,[[9,6],10,[4]]],[5,[],[]]] + +[[5,[6,7,6,6],8,4],[[],1],[5,9],[[],5,6,7,[[6,8],10]]] +[[],[[],8],[4,6]] + +[[4],[]] +[[],[],[1],[[[7,7,1],[1]]],[[[1,9,5,0],4,5],1,[8,0,[7,4,8,1]],[[9,0,9],9,[4,5]],[0]]] + +[[[[],8,9,[6,5,7]]],[[[8,10],[0,9,8],5,4],[[10,8,8,3]],[[3,4,1,5],9,[],[4,10,10],3],8],[0,9],[[9,[8,1,10,1],[10,1,4],[3,1,10]],[7,9]]] +[[[1,[6],1],[[],4],3,9,5]] + +[[1,6,[],4,[7,10,1,[7,9,7,1],5]],[10,6],[0,6]] +[[[[3,7,9,5,7],7,4,10,4],4],[],[[[10,4,1,2,4],6,[1],7,[]],[[5,8,5]],8,[[5],[],[10,3,1],[6,7,6,5,10]],[8,[7,4,5],[2,8,10],[]]],[3,9,[[8],3,[0],2],7,[2,[0,3,7,5,4],4,8]]] + +[[[],[[6,7,3],[5,6],7,[7,1,8,3,10],[5,6,8,4]],8],[[[10],[5],[6,0,10],9]],[[[],[9,8,8,9,2],[2,5],[4,6,7,5]],10]] +[[[1,1,0,[9,6,3,10,7],2],2,10,[8,8,3,[10,10,5,4,7],[]]],[10],[5,[6,3],3,6,1],[[2,[6,10,10,9],[2,7],8,[2,0,7,10]],7,[],[5,[2],[],4,9],[1,[10,3],[]]]] + +[[[[0,1,7,7],9],8,4,[],[]]] +[[[7,[10,3]],[8,1]],[10,9,7,[[1],[6,9,2],8,1,[5,7,3,5,10]],[[]]],[[[9,3,9,10,9],0,[6]],1,[2,[5,8,4,5,5],9,[4,10],2],0,[4,[0,1],10,[6,9,9]]]] + +[[[3,7,[1,9,9,1,7],4],[],[[6,10,1,1],9,[9,9],8,0],4,[[],[7,8,0],9,[7,6,4,0,9]]],[[9,7,3],[[2,6,5,5],[]],[[9],[7,5,0,8],[9,9,1,1,0]],7,3],[5]] +[[[[10,2],10],7,6,[[10],[5,4],0,4,[8,5,4]],[[],1]],[4,8,[3,1,[0,8],[3],6],[[3,4,3],[6],[4,5,4]]]] + +[[[0,[9,6,6,8],0,[3,7]],[[3,2,0],[3],[4],[6]],4,3,[7]],[7,[[],[],8],6,3],[],[1],[5,9]] +[[[7,[6,4,7]],[[2,5],10,[6]],[[],[]],[1,[9],6,9,[0,7,4,3]],1],[1,[8,[7,8,1,9],[10,3,3,4]],[[4,7,3,0,3]],[[1,6,6],6,5]],[]] + +[[6,[5,6],5,8],[[[5,8,4,9],9,[1,8],3,[9,5]],[]]] +[[3],[1,[10,0,[2,7,3,8,2],[10,3,9,4,2]]],[[[10],[8,2,10],5,2],3,[3,[8,0],3,5,4],[],3],[],[[9,8,9]]] + +[[[5],7,[[5,8],[3,9,3]],[[4,5,3,3],[4,5,1,2],4,9]]] +[[7,[2,[3,3,0,5,3],10]],[6,5]] + +[[[3],[[9,1,2]],6,5],[8],[10,[[1,5,2,10,7],[],[10]],5,6]] +[[7,10],[[],5],[],[10,[6],[10],[[],10,9,[1,2],[0]],6],[6,0,[7,[3],[8,9,2],5,3]]] + +[[[[0,2,2,0,8],1],1]] +[[[],[[1,1,6,10,3],9,1],[[2,2],8,3,1],[[9,0,6,1,0],[3,3],7]],[],[[7,[1],[3,4,9,0,0],8],7,[9,[],[8,0,8],10],[[3,8],6,[8,0,10],[9,0,1,0,8],5]],[[[2,10,5,3,2],[2,5,7,9],[3,4,4,3]],0,2,[[]],3]] + +[[1,7,[[6,7,7],1,[4,3,10,1],3],0,3],[2,[]],[],[7,[[0,4],[5,8],7],[[7,10,3,9,5],[6,5,1,6,6],10],[2,0,[6]]],[]] +[[[[7],5,[]],8],[3,4,7],[[],[2,[6,7,7,0],[5,0,1],[7,5,1]]]] + +[[0,[],1],[[[10,0],[5,2],6],9,[[10,8,2,7,3],[4,8],[2,5,3,7,2],[9,4,3,9,9]],3,9],[]] +[[],[[[],[1,3,3,6]],[4,[2,6],4,[8,5]],[5],7],[[],[[],0]],[3,[[0,2],[1,4],0],6,3],[[],[[9,7],[],[7,3],[],7]]] + +[[[7,[2,3,3],5,8,9],[[1,8,6,7]],6,[8,[0,8,0,7,10],[8],[6,9,1],1],9]] +[[7,4],[[[8,7],3],[0,8,9],6],[8,[3,[],5,[10,0],2],[1,2,[9,4],0]],[[],[],10,[[3],4,2]],[10,[8,7],4,[[3,3,5,6],[],[9,8,4,1],[0],10],[]]] + +[[],[[[5],[3,7,7,0],[4,9,6,6]]]] +[[[[],[5,5,10,4]],8]] + +[[4,9,[],4]] +[[8,3,10],[[[1,1,1],[10,3],[9,1,10,3,4]],10,10,4],[[[]]]] + +[[1,[6,4,6],[],0,[[],[]]],[8,3,[2],7,8]] +[[8],[1,[],[2,[4,9,3],5,3,7]],[],[[[9,6,1,4],[9],0,8]]] + +[[[[9,7],[0,4,5,7,3],[10,8]],[[10,6,9,4],0,3,[9,2,5,8],[5]]],[[0],9]] +[[[[5,7,1,1,7],5,[],2],[3,[4],7,[9,0,9,1,0]],[[8],[10,3,10],[1,1],10,[5,3,7]],10],[[6],1],[[[],[4]],3,10],[]] + +[[[2,8,4,[8,7,6,5]],5],[10],[7,[]],[[9,7,10,0]],[5,9,[],[10,2,[2,2,7,0]],4]] +[[[[10,7,6,1],[]],[2,[],10,2,1],0,[[2,9,9,9,1],3,8,[9,7,6,3],2]],[4,[[3],9],8,[10,[6,9],[6,6,6,8,7],2,6]],[7,[[6,7,8],[5,2,8,7,9],[],8],0]] + +[[[4,10],8,10,8],[3,1,[2,7,[7,10]],2],[[2,0,3]]] +[[6,8],[10,[[1],7,7,10]]] + +[[[],[10,9,8,0,5],4,[],0],[[[1,8,6],8,[2,10,9,8],7],[7]],[2,[[9,8,5,4],8,[],[]],[[]],9,[2,4,[3,3,9,10]]],[]] +[[2],[[[6],[3,2,0],[3,8],[3,8,8,3,0]],6],[2,[10,[],9,[],[7,3,9,2,4]],3,2,1],[8,3]] + +[[4,[9],[[9,10,4,7,2],8,[1,9,0]],[3,6,9,9],[[3]]],[]] +[[[8],[7],[1,1,[7,10,7,5,2]],[[4,5],[9,10]]],[[],2]] + +[[[[7,9],[0,6,8],8,5,[1]],4,[6,1,[1,2,3,3,9]],10,7],[4,[[],3,5],7,[10],0],[4,1,5],[0,9,[[10,5],[0],9,[0,7,4,2,10]],5,9]] +[[[[9,9],1,10,[9,7]]],[1,[[1],[2,4,9,0]],[4,0],7],[[3,[1,3,4,7],5],2,[[]],[[5,4]]],[1,4,9,10]] + +[[[6],[[2,4,10,8,1],[0,5,1,10],2],[0,1],[[8]]],[[2,[4,0]],[[]],[3,2,0,[8,8],[0,5,10,6]],1],[2,9,4,6,[[8],[9],10,[5,5],[5,5,9,8]]]] +[[[[6],6,[4,9,4,9,4],[7],[1,0]],[]],[[[],3],[[0,3,3,2],6,[2,6,6,8]],[[6,10],8,4],6],[1,5],[[],10,[]],[[[6,7,5],[4],[]],2,0,[[],[10,3,2],1,2]]] + +[[10,[[1,3,1,1]],3],[7,[[4,9],[5,4],3],10]] +[[[[],1,[9,7,2,10,6],10,6]],[1,[0,[3,8,0],1,2,[8,6,4]],2,[[7,5]],[[],[3,8,7,1],[],2]],[[],4,1],[[[6,2],[7,0,2],1,[10],[3]],[],[0,[10],[2,2],0,2],[0,[7,8]],2],[[2,2,[5,10,10],[0],[]],0,0,[[],1,[8,10]],5]] + +[[7,[8],8,5,[8]],[],[1,[[3,7],10,6],[7,2],1,[[1,3,1,7],10,[7,3,10,2],5]],[],[]] +[[8,3,8,[5,10],4],[[[],[2,3,8,1,6],2,[0,10,2,3,7]],4,1,10]] + +[[[5,9,6,1],[10]],[[2,5,[6,4,4],[2,4,2],[8,5]],7,[4,5,[0],4]],[3]] +[[8,[],2,[[10,5,2,5,5]]],[[[],[1,9,0,8,2],5],1,[7,[8,7,3],[5,0,5],[6,2,3],2],[1,10,0]],[6]] + +[[2,6,[[9,3,4,7],[9,3,9,1,2],3,4,0],2],[[[],[9,10,7,0],[]],[[2,6],[7,9,9],2,[7,3,2,7,8],[9,5,5,6]]]] +[[8,[[2,0],7,[7,4,9,10],7],[5],[2,[4,5],5],4]] + +[[0,10,3,9],[[[3,5,3,0,4],[5,8,5,3],9,[0,3,4,3]],10,6],[3],[5,0,10,[[2,1],6]],[3,[2],[[4,1,1,7,9],[3],3]]] +[[9,[1,6,1,4],3,2,[[],3,[6,8],[3,4,8,0,8]]],[10,[9],8],[3,3,7,2,[]],[9,[[7,0,6,9,7],[0,1,9,2,9],[4,6],9,[9]],[]]] + +[[[[4,5],9],[[],6,2,5,[0,7,0,1,8]],[5],4],[[[3,7,10,9,3],[],[],3]],[0]] +[[[[],7,[3,9,5],9],0],[[3,[],8],[6],3,5],[1],[[[],[]]],[[5,10,[2,9],[1,8,9],[4,3,1,1]],1,[[],[2,10,9],9,6],[[3,7,9,3],[0],[5,0,5],[2,7,3,5],[0]],[3,[],[5,10,0],9,[7]]]] + +[[8,2,[],[5,7]],[4],[[[8],7,6]]] +[[5,[[0,10,5,9],4,[0,10]],0,5,10]] + +[8,4,9,3,2] +[8,4,9,3] + +[[[[5]]],[[1,0,8,6],7],[7,1],[4,6],[[9,2,[0]],[[4]],[7,1,0,[10,10],10]]] +[[0,[[10,0,5,5,2],1],9],[[[1,4,3,3,5],[6],0,[2,4,9,8],[4,8,4]],[10,[0,2,7],[9,8,5],[],9],[3,[],1]]] + +[[[1,7,[1,1,1,9]],[4,1,[8,4,2,1]],[],[]]] +[[[],[[],[7,9,7,2,6],9],[[6,6,3],[8],3,0,3],7,[3,[0,2,3,4,0],[5,7]]],[8,[1,6,5,7]],[[7,[],[4]],[8,[],[8,6,7,4],4,6],[],[9,[2,2,6,7,6],7],9],[[[],8],10,[[],[8,2,8],8,[5,1,8]],[],[3,5]],[2,1,[7,[0,6,5,6,6],[5,7,4],[5,0,4,5,10]]]] + +[[],[[[3,7],4]],[],[],[[[2,0]],[5,9]]] +[[[6,4,[10],8,5],5,[7,[4,4,0]],[6],5],[2,10,[[2,10,5,8,5],[10,5,7,2,8],4,[8,5,5]],8,[[3,3],[6]]],[3,[[0,8]],1]] + +[[0,5],[[],4,8],[],[],[[1,[]],5,1,[[]],0]] +[[[]]] + +[[],[],[8],[],[6,10]] +[[3,3,6,8]] + +[[[0],[9],9],[[10,10],[7,[6,3,1,10,7],[5,7],[6,2,5],2]],[5,[2,[7,3]],6,3]] +[[],[9,[[4,9,9,9,6],[],[10,5,6]]],[[[1,7,0],[5],4,[],0]]] + +[[2,[5,10,[2,8,5,1,5],[9,0,8,0],8],[[8,8,10]],8],[2,[8,10,[],[1,5]],5,[[7],[4,2,1,1,8],0,1,[10,8,2]],2],[10,[[8,8,4,7,5],[5,7],10,[8,0]],5,[[4,4,2],[2,4,3,0,1],[7,8]]],[6]] +[[9]] + +[[4,[4,[0,7,0],[1,5,10,5],[2,10,7]],[5],[[2,4,2],[3,8,7,6],6]]] +[[7,7,5,[[4,8,10,6]],5],[2,4,10,1],[[[10],[10,9,2]]],[],[[[3,1,3,1],[],[0,0,9]],9,[2,[2,5,10,1,5],9],5,[2,[5,1,4,2],10]]] + +[[3],[8],[8,[4,[2,10],9,[4,10]],[],[],8]] +[[[[],[10,10]],[3,[5,3,4,5],8],9,[2,5],8]] + +[[],[],[[[8,8,4],2,[],5,3],[],[[2,2,0,0,10],[1,2],[1,1],8],[[10,6,1,6]]]] +[[[[1,0,4,7,8],[2,5],[3,1]],9,9,[[10,9]],[[2]]],[[[],[3,3,10],[8,7,5,4,9],6,0],2,[8,10,4,[8,3,3,9,2]],[[7,10,10,0,0],[4,3,8,3]]],[[1,0],0,6]] + +[[[]],[2,[[9],1,[6]],6],[[[10,0,0,9,2],[1,8,4],9,[10,6,5,2],[3,0,0,8]]],[5,[[],1,[4],[]],0,10,[2]]] +[[9],[],[[0,3,9,[]],[2,[1,9,0,0,4],[9,10,1,9,4],[]],[10,3,2],9]] + +[[[2],[1,1,[6],[8,6,9,6,7],3]],[[],8,[[6,6],[5,8,10],[],[9],8],[]],[]] +[[1,9,2,[6],[0,0,3]],[]] + +[[10,5],[],[[[]],7],[10,8,8,9,[[],[1,3,9,2,8],[9,4,2,6,7],[8,6],7]]] +[[[5,[2,8,0,6],[0,7],0],[[],[]],2,[6]],[[],4,6,[[],[4,8,8,7,5],7,[],[]],7],[4]] + +[[10,[[4,10],[8,1,10],[4,9,8,1,5],3,[4,9,1,1,6]]],[],[[7]],[[[],0,4,[7,6,4]],2,[[4],10],2,0]] +[[[],5],[2,[],7],[9],[]] + +[[],[],[7],[10],[]] +[[2,[[3,0,4,8,10],1,5,[]],[4,[9,4,10,7,2]],3],[8],[[[6],4,[3,7,5,9]],8,6,[10],8]] + +[[],[6]] +[[[[9,9,3,10],[5],9,6,3],[8,7,4,0],[],[[5,9,9,0],[],[1],[2,4,8]]],[10,[[9,6,4,1],1],0],[[9,[],7,7,6],[9],6]] + +[[[10,[5,10,0,7,2],[2],8]],[[9,9,[],1,8],[[],[1]],[5,[3,3],1]]] +[[],[3,1,[10,[2,2,10,0],[4,3,3,6,7],8],8],[[[8],2,4],[[],[],10,2,[]],6,8,8],[[7,0,8,[]]]] + +[[[4],7,[10]],[[[3],1],2,[9]],[[4,7],[[3,8],[2,5,5,4],5,[9,6,2,2,9]],2,[[4,5,8,6]],[0,6,7,[4,2,1,7],2]],[6,5]] +[[[9,1,3],[[9],8,[5,1,7],[9,8,9]],5,[[1,1,10],3],2],[[5],7],[]] + +[[3,[0,5,[8],[],[]],8,7,9]] +[[8,[[2],3,[],7,7],3],[[[2],[7,9],[8]],[6]],[[[],[6,5,0,5,2],[6,4,4],[5,9]],[[0,2],[10,8],[6,2,1],[4,10,6,8],6],[[1,1,8],9,5,5,[3]],[],[0,[],[1],[2,5,10]]],[[],5],[[[8,0,7,1,4],3,[],4],9]] + +[[],[9],[5,[[2,0,0,10,6],3,7,3,[9,9,2]],7]] +[[[],9],[],[6,6,[9,2,[3,6]],[[3,2,6,2],[9,0],0],1],[[9],10,[9,7],[9,[10,6],0]],[[[8,0],8,[1,10,2,9]],8,5]] + +[10,8,0,10] +[10,8,0,10,6] + +[[[[7,10,2],7,[]],[[],[1,0],[],[],3],9,2],[[[],4,9],0],[3,3,[],2],[[3,[7,1,1],3],10,10,9],[[6,0,3,[],[3,6]],[[9,10],[9,1,7,3],10,9],10,1]] +[[],[6,9,[0,3,3,0,[7,9,8]]],[[3,[8]],[8,[6,3]],2]] + +[[[2,[7,10,4,7,3],[9],0,4],1,[2,9,8,2,6],9,0],[],[3,0,[[5,4,4,2]],2]] +[[[[3,0],[5,9,9],[2,5,0],2,3]],[2,[6,[5]],[[10,3],8,9,[9,5,10,8,2]],8],[]] + +[[0,[[10],7],2,2,1],[[[0,2,5],2,7],[10,[],[8],7],5,[[2],0]]] +[[],[3],[10,[4,[5,2,7,3],9,5],3,3,6],[[7,[]]],[[[10,7,6,6,4],[4,2],8,6,[3,5,0]]]] + +[[0,[0,[],[]],5,0,9],[[7,9,[],[1,6,0]],[[10,6],3,[3,1,10,5,8],[]],7,6],[4,6,[],0,2],[5]] +[[[5],[8,0,5],[7,[1,3,9],3]],[2,7,0],[],[4,[4,8,4,[5,9,0]],[]],[[[10,7,6,1],[4,5,8,7],9]]] + +[[[9],1],[[4,[5,6],[4],5],10,6,[7],6],[[[5,4],[8],[7,4],[6,2,9,8],[4,0]],1,[[]],3,[10,0,1,[3,2,3,5],4]]] +[[7],[4,[3,[4,3,1,9,6],1,[]],[1,[6],[0,3]],0,10]] + +[[[0,3],[3,[1],[],6,[]]],[8,[],6,[],4]] +[[[[4],5,[9,1,7,9,9]],[2,5]],[[[10,8,5,10,2],7,[0,6,10,3],10],3,[6,0,[3,5,0,5],[8,9,3,5]],3],[[[0,4],[10,6,7,5],7,[10]],[1],[[8,10],2],[[],10,9,0]]] + +[[6,[[1]],1,[[],2,[6,10],6,1]],[[7,3],3,6,[3,3,10,[0]]],[6,[[6,7],5,1,[4,2,0,1]],10],[9,[[9],[2,6,5,1],0],[7]],[[[5],[],7,9,[10]],[[7,0]],[[]]]] +[[4,1,4,[[5,4],[9],[],[3,8,5]]],[2,8,[[6,6,4,6]],[4,1],1],[[2,0,[7,7,2,1,4],[0,8,3,8],9],5,0]] + +[[[6,10,9,[1],8]],[4,0,[[8,1,9,7,0]],[[3,7,10],9,[10,9,2],[6,10],[5,9,5,10]]],[5,5,8,1,2],[]] +[[7,2],[2,7,2,5,[[1,4,7,10,10]]],[8,4,[[9,8,10],[0],2,[3]],1,7],[2,0,[0,4,0],5,[]],[[[6,8,9],[2,4,3,4,10],10],2,9]] + +[[5,8,[],[[8,6,3,10],[1,1,4,7,5],[1,8,0,5,2],6,5]],[],[]] +[[],[],[[[5,9,6],2,10,[9,1],4],4,3,[1,[9]],6]] + +[[2,[2,[7,8],[7,2,0]]]] +[[0],[[],7],[],[],[1,[7,[4,6,9]],4]] + +[[[[9,6,7,5],2]]] +[[[],8,[3,0,5],1,8],[[[3,5,7,7,7],[6,3,7,7],[1,1,2,1]],0,4,[0,5]],[],[2],[[7,[6,4,8,7],[8,8,10,5],1,10],10,8,[[8,1],[8,5,5],3,[8,0]],6]] + +[[10,4]] +[[],[0,[],[[],[8,1,0],[10],[0,6,6,9],8],2],[[[9],1,[]],[[2,0,8,10]],6,[[2,1,10,3],[],8]],[2,[[8,4,0,5],0,9,5,[1]],[]]] + +[[10,0,10,9]] +[[[2,[10,3,6],4],[[6,5,10,3],8,[0,0,9,7,2],[10,4,5,4,4],[1]],[1],[[3,7,4,10,1],[8,10,4]],9],[10],[[5,5,[1,7,10],9,4],[],3]] + +[[7,4,1,[6,8,4],10],[5,10,7,[9,10,6,7]],[4,3]] +[[[4,[9],[7,1,3],5,[]],2],[8,0],[[[9,0,5,4],[4,0,8,5],1],7,[8,3,[],9],0],[]] + +[[[1,3]],[[[1,3,4],0,[9],[0],[8,5,8]],[[7,4],0,[2],[2,1,0,0]]],[[],[[2,1,3,3],6],[3],[[1,6,8]]],[9,2,[[],[4,7,7],[7,2,10,6,3]]]] +[[10]] + +[[[],[]],[6,[5,6,[1],0]],[10],[[10],1,[8],7,8],[[[],8,4],3,3,[1,[2,7]],1]] +[[[7,8,[1],2],7,[[0,6,4],3,[6,8,7,6,5],[2,10,6,4,4],1],[[6,6,9,2,9],[6]]],[6,[]],[[1,[],[6,5,8]]]] + +[[[[8],4,[0,10],[],[5,5,8]],10],[],[7,[],[],[[2,10,1,4],[9,9,4],1,7,[8,5]]]] +[[7],[[],[[10,3,1,4,3],6,[5,9],[0]],1],[4,0,[[7]],0,3],[10,5],[[8]]] + +[[[],3]] +[[1,3,[[8,7,9,5],[],7,[],6],[9,[]],8],[[[1],[4,3,1],6,[9],[6,4,0,4]],[[8],1,[0,10,5],7,6],7,[2,[6,9,5,9,1]]]] + +[[[9,[0],[9,0],0,9],[],[[],[1,1],[5,7,7,5,7],[]],1],[[8,5,7],8]] +[[6,[],[0,2,1],[3],2],[7,7],[6,[],[],2]] + +[[5,4,[[7,8,3,0],[3,9,7,1,10],[10],6],1],[]] +[[8,6,[[2,2,6,8],[1,2,2,7],[],[],7],2,6]] + +[[[[],[5],[],9,3]],[],[7,[],0,[[8,8,10,8],10]]] +[[5,10,2,7,5],[6,5,3],[2,[[3,1,2],2,[]],1],[4]] + +[[],[],[]] +[[[[4,2],[7,1,1],6,9,[9,5,8,2]]],[[],[[7,10,9,1,0]]],[[[8,8,8],1,[7,10,3],10],2,1,[[5,4,5],[10,4,0],4,5]],[4,2,[]]] + +[[[[],3],[[10,6,10,6,4],2,[9,9,2,0]],[6,[],[10,8,2,6,10],[8,8]]]] +[[[[1,5,10],[7,0,4,2],7,[]],0],[2,[8],10,1,6],[7,[[5,5,4,7]],6],[[[8,7,7],8,[0,5,6,10,9],10],7,[2,6],[],6],[1]] + +[[[[4,0,6,6],[5,6,7],[10]]],[7,9]] +[[[7,8,[0,8,10,1],4,10],10,[[8,1],1,[],3,6]],[]] + +[[9],[[],5],[8,[4,0,[9,7,0,3,8]],[]],[5,6,9,[1,[1,10,3,1,6],10,2]],[[],[],5,[[7,5,4,7,7],5,6,[10,9,1,9,2],0],[]]] +[[[[9],10,[9,0,9],5],10,4,6],[0,[1,6],2,3,1],[3],[[],[[0,7,0],[7,1],4,3]],[3,9,[],8]] + +[[1,2,6,2]] +[[[[5,1,0]],10,[10,[],[9,0,5,4],1],[5,6],[[9,6,6],0,3,[0,4],6]]] + +[[[0,[7,8,3,10,1]],6,2],[8,[[1,5,3,1,10],[0,1,9]],5,[10,1],2],[[[7,8,1,0],0,[10,7,3,3],[4]],7]] +[[0,2,[[10,1,3],2,4,0]]] + +[[[6,[5,2,3,6,8]],[[9,7],[6,10,8],4,3,[3,1,9,4]]],[3,[[7,8]]],[7,0,[6],1]] +[[[],6,7,[4,1],[6,[],[4,7,0,0,6],[9,2,7,9],0]]] + +[[[4,[9,6,8,9,7],[10],[4,6],[2,10,7]],[],[[],4,6,2,0],6,[[6,5,3,10,2]]],[9,10,0]] +[[4,[6,[0,1,5],5]],[8],[4],[[],[0,[2,5,4],[]],[[0,5],[0,2]]],[[3,[10],[6]],4,[],3,[[2,1],9,1,8]]] + +[[[],4],[0,2],[[[7,2,3,5,7],[3,3,9,5,0],[1,8,3],2],[[10,10,5,7,10],[],[5,10,10,1,3],[4,9],[3,5]]],[],[9,3,[2,3,[1,7]]]] +[[9,2,8,3],[[[1,6,9],9,9,[],[6,7,9]],9,0],[1,8,[[]],5],[[[3,7,0,9],[2,3,4,6,2],3,[3,3,0]],3,[3,2,1,[8,4]],[4,[10],4],[[5,10]]],[]] + +[[[6,8],9,6,9,5],[9,2,[]]] +[[[7,6],[]],[0,[[2],5,4,[]]],[8,6,7],[[[],[4,2,3],[0,3,2,7,5],[0,2,4,1],0],3],[5,7,[[8],5]]] + +[[6],[[3,4,[1,1,4],6]],[[[]],[],[10]],[2,6,[10,9,1,8,[0,5]],6],[5,7,[[6,10,2,3]]]] +[[[[2,4,0],9],4,8,[[],[9,4]]],[]] + +[[[[9,6,3,8],10,4],[10,[0,4,10,0,2],[6,7,10,1]],[[],[6,9,6,9,8],[],5],3,[4,4]],[[[],[9],[],5,5]],[]] +[[6],[3,[9,0,6,[9,6]],[[2,5]],[]],[[[7,7,6],[0,1],0,[]],5,1,3],[8]] + diff --git a/day13/part1.rs b/day13/part1.rs new file mode 100644 index 0000000..600cec2 --- /dev/null +++ b/day13/part1.rs @@ -0,0 +1,30 @@ +// Copyright 2022 Christian Ulrich +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// usage: ./part1 < input + +pub mod common; + +fn main() -> Result<(), &'static str> { + let mut result = 0; + for (index, pair) in common::packet_pairs().enumerate() { + let (left, right) = pair?; + if left <= right { + result += index + 1; + } + } + println!("{result}"); + Ok(()) +} diff --git a/day13/testinput b/day13/testinput new file mode 100644 index 0000000..545cddd --- /dev/null +++ b/day13/testinput @@ -0,0 +1,24 @@ +[1,1,3,1,1] +[1,1,5,1,1] + +[[1],[2,3,4]] +[[1],4] + +[9] +[[8,7,6]] + +[[4,4],4,4] +[[4,4],4,4,4] + +[7,7,7,7] +[7,7,7] + +[] +[3] + +[[[]]] +[[]] + +[1,[2,[3,[4,[5,6,7]]]],8,9] +[1,[2,[3,[4,[5,6,0]]]],8,9] +