From 554ad47f09974f0131df285fda8ea50a1fdad8f5 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 11 Dec 2023 15:14:47 +0100 Subject: Initial commit, some solutions --- 2023/04/4a.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 2023/04/4a.c (limited to '2023/04/4a.c') diff --git a/2023/04/4a.c b/2023/04/4a.c new file mode 100644 index 0000000..a1f6a9e --- /dev/null +++ b/2023/04/4a.c @@ -0,0 +1,43 @@ +#include +#include +#include +#include + +#define N 1000 + +bool isnum(char c) { return c >= '0' && c <= '9'; } + +int main() { + char *buf, line[N]; + int i, j, x, sum, nw, nr, w[100], r[100]; + + sum = 0; + while ((buf = fgets(line, N, stdin)) != NULL) { + nr = nw = 0; + while (*buf != ':') buf++; + while (*buf != '|') { + buf++; + if (!isnum(*buf)) continue; + w[nw++] = atoi(buf); + while (isnum(*buf)) buf++; + } + while (*buf != '\n') { + buf++; + if (!isnum(*buf)) continue; + r[nr++] = atoi(buf); + while (isnum(*buf)) buf++; + } + for (x = 0, i = 0; i < nr; i++) { + for (j = 0; j < nw; j++) { + if (r[i] == w[j]) { + x++; + break; + } + } + } + sum += 1 << (x-1); + } + + printf("%d\n", sum); + return 0; +} -- cgit v1.3