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/08/8a.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 2023/08/8a.c (limited to '2023/08/8a.c') diff --git a/2023/08/8a.c b/2023/08/8a.c new file mode 100644 index 0000000..62f6fcd --- /dev/null +++ b/2023/08/8a.c @@ -0,0 +1,35 @@ +#include +#include +#include +#include +#include +#include + +#define N 30000 + +bool isnum(char c) { return c >= '0' && c <= '9'; } +int index(char *c) { return c[0]-'A' + (c[1]-'A' + (c[2]-'A')*26)*26; } + +int map[N][2]; + +int main() { + char *buf, dir[N], line[N]; + int n, i, s; + + n = strlen(fgets(dir, N, stdin)) - 1; + + fgets(line, N, stdin); + while ((buf = fgets(line, N, stdin)) != NULL) { + i = index(buf); + while (*buf != '(') buf++; + map[i][0] = index(buf+1); + while (*buf != ' ') buf++; + map[i][1] = index(buf+1); + } + + for (i = index("AAA"), s = 0; i != index("ZZZ"); s++) + i = map[i][dir[s % n] == 'R']; + + printf("%d\n", s); + return 0; +} -- cgit v1.3