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
|
NNCB
|
||||||
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
|
|
||||||
|
|
||||||
fold along y=7
|
CH -> B
|
||||||
fold along x=5
|
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