summary refs log tree commit diff homepage
path: root/2017/src
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2017-12-09 02:54:49 -0500
committerJune McEnroe <june@causal.agency>2020-11-22 00:14:25 -0500
commit3b4a4561e2cc8b5b614e7fdd819109eb5d75fea0 (patch)
tree7483e39fab08788bb59d97db63d5bc771149e5e8 /2017/src
parentDay 8 (diff)
downloadaoc-3b4a4561e2cc8b5b614e7fdd819109eb5d75fea0.tar.gz
aoc-3b4a4561e2cc8b5b614e7fdd819109eb5d75fea0.zip
Day 8, part 2
Diffstat (limited to '')
-rw-r--r--2017/src/bin/day08.rs27
1 files changed, 22 insertions, 5 deletions
diff --git a/2017/src/bin/day08.rs b/2017/src/bin/day08.rs
index e5a9ad0..4266d31 100644
--- a/2017/src/bin/day08.rs
+++ b/2017/src/bin/day08.rs
@@ -1,7 +1,8 @@
 use std::collections::HashMap;
 use std::io::{self, Read};
 
-fn solve1(input: &str) -> i32 {
+fn solve(input: &str) -> (i32, i32) {
+    let mut max = 0;
     let mut regs = HashMap::new();
     for line in input.lines() {
         let mut words = line.split_whitespace();
@@ -33,25 +34,41 @@ fn solve1(input: &str) -> i32 {
         if cond {
             *dest += val;
         }
+        if *dest > max {
+            max = *dest;
+        }
     }
-    regs.values().cloned().max().unwrap()
+    (regs.values().cloned().max().unwrap(), max)
 }
 
 fn main() {
     let mut input = String::new();
     io::stdin().read_to_string(&mut input).unwrap();
 
-    println!("Part 1: {}", solve1(&input));
+    println!("Part 1: {}", solve(&input).0);
+    println!("Part 2: {}", solve(&input).1);
 }
 
 #[test]
 fn part1() {
-    assert_eq!(1, solve1(
+    assert_eq!(1, solve(
+"\
+b inc 5 if a > 1
+a inc 1 if b < 5
+c dec -10 if a >= 1
+c inc -20 if c == 10
+"
+    ).0);
+}
+
+#[test]
+fn part2() {
+    assert_eq!(10, solve(
 "\
 b inc 5 if a > 1
 a inc 1 if b < 5
 c dec -10 if a >= 1
 c inc -20 if c == 10
 "
-    ));
+    ).1);
 }
ae08c&id=8f635bd0b0d47bf8ee68e2208d4407eaa0c95f84&follow=1'>only allow text messages to be handleddestruc7i0n * move config.json to config.example.json * update packages 2021-06-20use uuids for avatar requests with webhooksdestruc7i0n 2021-06-09readme updatesdestruc7i0n regarding #72 and some feedback regarding Heroku 2021-06-06Missed an old 1.12 death message in the regexDaniel Matthies 2021-05-17Add config deprecation noticeDaniel Matthies 2021-04-21Fixing death message false positivesDaniel Matthies 2020-10-31update packagesdestruc7i0n 2020-10-29Add option to output server status into discordelveskevtar Signed-off-by: elveskevtar <kevtar@gmail.com> 2020-10-01new config stuffsurepy 2020-10-01Add compatibility options for minecraft versions lower than 1.7.2surepy 2020-08-04Update regex for replaceDiscordMentionsMarshall Oliver 2020-08-04Add nickname to variables objMarshall Oliver To use, add %nickname% to your MINCRAFT_TELLRAW_TEMPLATE var in config. 2020-07-22Fixed coding styleFeiko Joosten Fixed the coding style based on @destruc7i0n's feedback. 2020-07-17Changed tail to make use of watch file.Feiko Joosten Fixed an issue where the log file required a manual refresh before the new lines were detected. 2020-05-23Fixed user mention detectionZachery Notz 2020-05-23Improved regex so that TELLRAW templates can use variables more than onceZachery Notz 2020-04-29backwards compat with new optiondestruc7i0n 2020-04-29add the ability to handle webhook messagesdestruc7i0n 2020-04-19Fixed tellraw components not being encoded properlyBen Landin 2020-02-11Update README.mddestruc7i0n 2020-02-05Precedencedestruc7i0n 2020-02-05Allow specification of the channel name rather than iddestruc7i0n 2020-02-05Some more cleanupdestruc7i0n 2020-02-05More config handlingdestruc7i0n 2020-02-04Update typesdestruc7i0n 2020-02-04Docs updatesdestruc7i0n 2020-02-04Code cleanupdestruc7i0n 2020-02-04Refactor and rebuild to TypeScriptdestruc7i0n 2019-02-11Local file supportdestruc7i0n 2018-11-11Let's make this usable again!destruc7i0n 2018-02-23Allow configurable discord formatArcensoth 2018-02-23Revert example tellraw format to mimic the originalArcensoth 2018-02-23Update readme with new tellraw config optionArcensoth 2018-02-23Allow configurable tellraw formatArcensoth 2018-02-23Allow config file to be passed as a parameterArcensoth