AdventOfCode/2019/days/2/1/main.c

54 lines
838 B
C

#include <stdio.h>
#include <stdlib.h>
int main(void) {
int i, vi, c, wl, v[256];
char buffer[16];
for (i=0, vi=0; (c=getchar())!=EOF || wl == 1;) {
switch (c) {
case '9':
case '8':
case '7':
case '6':
case '5':
case '4':
case '3':
case '2':
case '1':
case '0': buffer[i++] = c;
wl=1;
default: break;
}
if (c == ',' || c==EOF) {
buffer[i] = '\0';
i=0;
wl=0;
if (buffer[0] != '\0') {
v[vi++] = atoi(buffer);
}
}
}
v[vi] = '\0';
v[1] = 12;
v[2] = 2;
for (i=0; i < vi-3;) {
switch (v[i]) {
case 1:
v[v[i+3]] = v[v[i+1]] + v[v[i+2]];
break;
case 2:
v[v[i+3]] = v[v[i+1]] * v[v[i+2]];
break;
case 99:
break;
default: return 1;
}
if (v[i] == 99) {
break;
}
i=i+4;
}
printf("1202 program alarm: %i\n", v[0]);
return 0;
}