commit 4e5f9a4868c01aca0ef125c8cc50bbf6e208995c
parent cff39c9c29e8200f1e9ed1a293e894153c19ee87
Author: Jake Bauer <jbauer@paritybit.ca>
Date: Fri, 16 Dec 2022 12:47:42 -0500
Improvements to Day 11
Diffstat:
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/day11/main.c b/day11/main.c
@@ -1,7 +1,5 @@
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
-#include <err.h>
struct monkey {
unsigned long items[32];
@@ -15,10 +13,10 @@ struct monkey {
};
void
-throwItem(struct monkey **monkeys, int from, int to, int itemIndex)
+throwItem(struct monkey **monkeys, int from, int to)
{
- monkeys[to]->items[monkeys[to]->numItems++] = monkeys[from]->items[itemIndex];
- for (int i = itemIndex; i < monkeys[from]->numItems; i++)
+ monkeys[to]->items[monkeys[to]->numItems++] = monkeys[from]->items[0];
+ for (int i = 0; i < monkeys[from]->numItems; i++)
{
monkeys[from]->items[i] = monkeys[from]->items[i+1];
}
@@ -129,23 +127,23 @@ main (void)
for (int j = 0; j < 8; j++)
{
monkeys[j]->inspections += monkeys[j]->numItems;
- for(int k = 0; k < monkeys[j]->numItems;)
+ while (monkeys[j]->numItems > 0)
{
if (monkeys[j]->operator == '*' && monkeys[j]->operand == 0)
- monkeys[j]->items[k] *= monkeys[j]->items[k];
+ monkeys[j]->items[0] *= monkeys[j]->items[0];
else if (monkeys[j]->operator == '*')
- monkeys[j]->items[k] *= monkeys[j]->operand;
+ monkeys[j]->items[0] *= monkeys[j]->operand;
else
- monkeys[j]->items[k] += monkeys[j]->operand;
+ monkeys[j]->items[0] += monkeys[j]->operand;
- /* monkeys[j]->items[k] /= 3; */
- monkeys[j]->items[k] %= lcm;
+ /* monkeys[j]->items[0] /= 3; */
+ monkeys[j]->items[0] %= lcm;
- if (monkeys[j]->items[k] % monkeys[j]->modulus == 0)
- throwItem(monkeys, j, monkeys[j]->trueMonkey, k);
+ if (monkeys[j]->items[0] % monkeys[j]->modulus == 0)
+ throwItem(monkeys, j, monkeys[j]->trueMonkey);
else
- throwItem(monkeys, j, monkeys[j]->falseMonkey, k);
+ throwItem(monkeys, j, monkeys[j]->falseMonkey);
}
}
}