From 1424c5bfbdcd0eb13f563e7fd70a4656058114cc Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Wed, 19 Dec 2018 12:30:02 +0100 Subject: [PATCH] Slightly increase optimized section. --- 2018/loc.svg | 38 +++++++++++++++++++------------------- 2018/src/day19.rs | 8 +++----- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/2018/loc.svg b/2018/loc.svg index 43fe4f8..97c11fc 100644 --- a/2018/loc.svg +++ b/2018/loc.svg @@ -32,10 +32,10 @@ z +" id="m949f39278e" style="stroke:#000000;stroke-width:0.8;"/> - + @@ -71,7 +71,7 @@ z - + @@ -110,7 +110,7 @@ z - + @@ -139,7 +139,7 @@ z - + @@ -153,7 +153,7 @@ z - + @@ -193,7 +193,7 @@ z - + @@ -286,10 +286,10 @@ z +" id="med6d0249be" style="stroke:#000000;stroke-width:0.8;"/> - + @@ -302,7 +302,7 @@ L -3.5 0 - + @@ -316,7 +316,7 @@ L -3.5 0 - + @@ -331,7 +331,7 @@ L -3.5 0 - + @@ -346,7 +346,7 @@ L -3.5 0 - + @@ -361,7 +361,7 @@ L -3.5 0 - + @@ -577,7 +577,7 @@ z - - - + diff --git a/2018/src/day19.rs b/2018/src/day19.rs index 0aec606..c35de73 100644 --- a/2018/src/day19.rs +++ b/2018/src/day19.rs @@ -63,12 +63,10 @@ impl Solution for Day19 { assert_eq!(self.ip, 3); while (cpu.registers[3] as usize) < self.program.len() { - if cpu.registers[3] == 3 { + if cpu.registers[3] == 1 { let reg = &mut cpu.registers; - if reg[5] % reg[1] == 0 { - reg[0] += reg[1]; - } - reg[3] = 12; + reg[0] = (1..=reg[5]).filter(|&x| reg[5] % x == 0).sum(); + reg[3] = 16; } let (opcode, operands) = &self.program[cpu.registers[self.ip] as usize]; cpu.execute(*opcode, operands).unwrap();