diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2022-12-01 18:02:32 +0100 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2022-12-01 18:02:32 +0100 |
commit | ff3ca85c677c104542adb6894ab70e16bbfabd6b (patch) | |
tree | 70f57eb72581bb538bc99ded99c7858398f85f2b /inf/aoc/1.c | |
parent | nem test1 (diff) | |
download | sola-gimb-4-ff3ca85c677c104542adb6894ab70e16bbfabd6b.tar sola-gimb-4-ff3ca85c677c104542adb6894ab70e16bbfabd6b.tar.gz sola-gimb-4-ff3ca85c677c104542adb6894ab70e16bbfabd6b.tar.bz2 sola-gimb-4-ff3ca85c677c104542adb6894ab70e16bbfabd6b.tar.lz sola-gimb-4-ff3ca85c677c104542adb6894ab70e16bbfabd6b.tar.xz sola-gimb-4-ff3ca85c677c104542adb6894ab70e16bbfabd6b.tar.zst sola-gimb-4-ff3ca85c677c104542adb6894ab70e16bbfabd6b.zip |
Diffstat (limited to 'inf/aoc/1.c')
-rw-r--r-- | inf/aoc/1.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/inf/aoc/1.c b/inf/aoc/1.c new file mode 100644 index 0000000..2bb65b9 --- /dev/null +++ b/inf/aoc/1.c @@ -0,0 +1,45 @@ +#include <stdio.h> +#include <stdlib.h> +int main (void) { + char b[64]; + unsigned m = 0; + unsigned n = 0; + unsigned o = 0; + unsigned s = 0; + unsigned t; + while (!ferror(stdin) && !feof(stdin)) { + if (m < o) { + t = o; + o = m; + m = t; + } + if (n < o) { + t = o; + o = n; + n = t; + } + fgets(b, 64, stdin); + if (b[0] == '\n') { + if (s > m) { + o = n; + n = m; + m = s; + goto c; + } + if (s > n) { + o = n; + n = s; + goto c; + } + if (s > o) { + o = s; + goto c; + } + c: + s = 0; + } else { + s += atoi(b); + } + } + printf("%u %u %u sum %u\n", m, n, o, m+n+o); +} |