Slow part 1 for day 14
This commit is contained in:
parent
65d2d71f64
commit
69ea772f12
|
@ -0,0 +1,102 @@
|
|||
KOKHCCHNKKFHBKVVHNPN
|
||||
|
||||
BN -> C
|
||||
OS -> K
|
||||
BK -> C
|
||||
KO -> V
|
||||
HF -> K
|
||||
PS -> B
|
||||
OK -> C
|
||||
OC -> B
|
||||
FH -> K
|
||||
NV -> F
|
||||
HO -> H
|
||||
KK -> H
|
||||
CV -> P
|
||||
SC -> C
|
||||
FK -> N
|
||||
VV -> F
|
||||
FN -> F
|
||||
KP -> O
|
||||
SB -> O
|
||||
KF -> B
|
||||
CH -> K
|
||||
VF -> K
|
||||
BH -> H
|
||||
KV -> F
|
||||
CO -> N
|
||||
PK -> N
|
||||
NH -> P
|
||||
NN -> C
|
||||
PP -> H
|
||||
SH -> N
|
||||
VO -> O
|
||||
NC -> F
|
||||
BC -> B
|
||||
HC -> H
|
||||
FS -> C
|
||||
PN -> F
|
||||
CK -> K
|
||||
CN -> V
|
||||
HS -> S
|
||||
CB -> N
|
||||
OF -> B
|
||||
OV -> K
|
||||
SK -> S
|
||||
HP -> C
|
||||
SN -> P
|
||||
SP -> B
|
||||
BP -> C
|
||||
VP -> C
|
||||
BS -> K
|
||||
FV -> F
|
||||
PH -> P
|
||||
FF -> P
|
||||
VK -> F
|
||||
BV -> S
|
||||
VB -> S
|
||||
BF -> O
|
||||
BB -> H
|
||||
OB -> B
|
||||
VS -> P
|
||||
KB -> P
|
||||
SF -> N
|
||||
PF -> S
|
||||
HH -> P
|
||||
KN -> K
|
||||
PC -> B
|
||||
NB -> O
|
||||
VC -> P
|
||||
PV -> H
|
||||
KH -> O
|
||||
OP -> O
|
||||
NF -> K
|
||||
HN -> P
|
||||
FC -> H
|
||||
PO -> B
|
||||
OH -> C
|
||||
ON -> N
|
||||
VN -> B
|
||||
VH -> F
|
||||
FO -> B
|
||||
FP -> B
|
||||
BO -> H
|
||||
CC -> P
|
||||
CS -> K
|
||||
NO -> V
|
||||
CF -> N
|
||||
PB -> H
|
||||
KS -> P
|
||||
HK -> S
|
||||
HB -> K
|
||||
HV -> O
|
||||
SV -> H
|
||||
CP -> S
|
||||
NP -> N
|
||||
FB -> B
|
||||
KC -> V
|
||||
NS -> P
|
||||
OO -> V
|
||||
SO -> O
|
||||
NK -> K
|
||||
SS -> H
|
|
@ -1,21 +1,18 @@
|
|||
6,10
|
||||
0,14
|
||||
9,10
|
||||
0,3
|
||||
10,4
|
||||
4,11
|
||||
6,0
|
||||
6,12
|
||||
4,1
|
||||
0,13
|
||||
10,12
|
||||
3,4
|
||||
3,0
|
||||
8,4
|
||||
1,10
|
||||
2,14
|
||||
8,10
|
||||
9,0
|
||||
NNCB
|
||||
|
||||
fold along y=7
|
||||
fold along x=5
|
||||
CH -> B
|
||||
HH -> N
|
||||
CB -> H
|
||||
NH -> C
|
||||
HB -> C
|
||||
HC -> B
|
||||
HN -> C
|
||||
NN -> C
|
||||
BH -> H
|
||||
NC -> B
|
||||
NB -> B
|
||||
BN -> B
|
||||
BB -> N
|
||||
BC -> B
|
||||
CC -> N
|
||||
CN -> C
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
use std::collections::HashMap;
|
||||
use std::error::Error;
|
||||
use std::fs::File;
|
||||
use std::io::{self, BufRead};
|
||||
use std::vec::Vec;
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let file = File::open("inputs/day14.txt")?;
|
||||
let mut lines = io::BufReader::new(file).lines();
|
||||
|
||||
let mut polymer_template: Vec<char> = lines.next().unwrap().unwrap().chars().collect();
|
||||
lines.next();
|
||||
|
||||
let mut rules: HashMap<(char, char), char> = HashMap::new();
|
||||
while let Some(Ok(line)) = lines.next() {
|
||||
if line == "" {
|
||||
break;
|
||||
}
|
||||
|
||||
let mut parts = line.split(" -> ");
|
||||
let pair = parts.next().unwrap();
|
||||
let new = parts.next().unwrap();
|
||||
|
||||
rules.insert(
|
||||
(pair.chars().nth(0).unwrap(), pair.chars().nth(1).unwrap()),
|
||||
new.chars().nth(0).unwrap(),
|
||||
);
|
||||
}
|
||||
|
||||
for i in 0..40 {
|
||||
let mut next_step: Vec<char> = Vec::new();
|
||||
next_step.push(polymer_template[0]);
|
||||
for pair in polymer_template.windows(2) {
|
||||
//next_step.push(pair[0]);
|
||||
if rules.contains_key(&(pair[0], pair[1])) {
|
||||
next_step.push(rules[&(pair[0], pair[1])]);
|
||||
}
|
||||
next_step.push(pair[1]);
|
||||
}
|
||||
|
||||
polymer_template = next_step;
|
||||
|
||||
println!("{} : {}", i, polymer_template.len());
|
||||
}
|
||||
|
||||
let mut dist: HashMap<char, usize> = HashMap::new();
|
||||
for c in polymer_template.iter() {
|
||||
let count = dist.get(c).unwrap_or_else(|| &0).clone();
|
||||
dist.insert(*c, count + 1);
|
||||
}
|
||||
|
||||
let mut counts: Vec<&usize> = dist.values().collect();
|
||||
counts.sort();
|
||||
|
||||
println!(
|
||||
"Answer1: {}",
|
||||
*counts.last().unwrap() - *counts.first().unwrap()
|
||||
);
|
||||
|
||||
println!("Answer2: {}", 0);
|
||||
|
||||
Ok(())
|
||||
}
|
Loading…
Reference in New Issue