From fe75c10e350743a1c078f065d69556fecf825ca5 Mon Sep 17 00:00:00 2001 From: nekineki Date: Sun, 11 Dec 2022 14:47:27 +0100 Subject: move files around, update paths --- 2022/day01.py | 23 + 2022/day02.py | 62 ++ 2022/day03.py | 70 ++ 2022/day04-oneline.py | 19 + 2022/day04.py | 26 + 2022/day05-oneline.py | 28 + 2022/day05.py | 57 ++ 2022/day06.c | 54 + 2022/day06.py | 35 + 2022/day07.py | 105 ++ 2022/day08.c | 155 +++ 2022/day08.py | 75 ++ 2022/day09.py | 115 +++ 2022/day1/day1.py | 23 - 2022/day1/input.txt | 2262 ----------------------------------------- 2022/day1/input_test.txt | 14 - 2022/day10.py | 71 ++ 2022/day10/asd.py | 71 -- 2022/day10/pzl.txt | 145 --- 2022/day10/ref.txt | 146 --- 2022/day11.py | 82 ++ 2022/day11/asd.py | 82 -- 2022/day11/pzl.txt | 55 - 2022/day11/ref.txt | 27 - 2022/day2/day2.py | 62 -- 2022/day2/input.txt | 2500 ---------------------------------------------- 2022/day2/input_test.txt | 3 - 2022/day3/day3.py | 72 -- 2022/day3/input.txt | 300 ------ 2022/day3/input_test.txt | 6 - 2022/day4/asd.py | 26 - 2022/day4/oneline.py | 19 - 2022/day4/pzl.txt | 1000 ------------------- 2022/day4/ref.txt | 6 - 2022/day5/asd.py | 57 -- 2022/day5/oneline.py | 28 - 2022/day5/pzl.txt | 513 ---------- 2022/day5/pzl_mod.txt | 513 ---------- 2022/day5/ref.txt | 9 - 2022/day5/ref_mod.txt | 8 - 2022/day6/asd.py | 35 - 2022/day6/day6.c | 54 - 2022/day6/pzl.txt | 1 - 2022/day6/ref.txt | 1 - 2022/day7/asd.py | 105 -- 2022/day7/pzl.txt | 1013 ------------------- 2022/day7/ref.txt | 23 - 2022/day8/asd.py | 75 -- 2022/day8/day8.c | 155 --- 2022/day8/pzl.txt | 99 -- 2022/day8/ref.txt | 5 - 2022/day9/asd.py | 115 --- 2022/day9/pzl.txt | 2000 ------------------------------------- 2022/day9/ref.txt | 8 - 2022/day9/ref2.txt | 8 - 2022/in/day01.pzl | 2262 +++++++++++++++++++++++++++++++++++++++++ 2022/in/day01.ref | 14 + 2022/in/day02.pzl | 2500 ++++++++++++++++++++++++++++++++++++++++++++++ 2022/in/day02.ref | 3 + 2022/in/day03.pzl | 300 ++++++ 2022/in/day03.ref | 6 + 2022/in/day04.pzl | 1000 +++++++++++++++++++ 2022/in/day04.ref | 6 + 2022/in/day05.pzl | 513 ++++++++++ 2022/in/day05.ref | 9 + 2022/in/day05_mod.pzl | 513 ++++++++++ 2022/in/day05_mod.ref | 8 + 2022/in/day06.pzl | 1 + 2022/in/day06.ref | 1 + 2022/in/day07.pzl | 1013 +++++++++++++++++++ 2022/in/day07.ref | 23 + 2022/in/day08.pzl | 99 ++ 2022/in/day08.ref | 5 + 2022/in/day09.pzl | 2000 +++++++++++++++++++++++++++++++++++++ 2022/in/day09.ref | 8 + 2022/in/day09_2.ref | 8 + 2022/in/day10.pzl | 145 +++ 2022/in/day10.ref | 146 +++ 2022/in/day11.pzl | 55 + 2022/in/day11.ref | 27 + 80 files changed, 11642 insertions(+), 11644 deletions(-) create mode 100755 2022/day01.py create mode 100755 2022/day02.py create mode 100755 2022/day03.py create mode 100755 2022/day04-oneline.py create mode 100755 2022/day04.py create mode 100755 2022/day05-oneline.py create mode 100755 2022/day05.py create mode 100644 2022/day06.c create mode 100755 2022/day06.py create mode 100755 2022/day07.py create mode 100644 2022/day08.c create mode 100755 2022/day08.py create mode 100755 2022/day09.py delete mode 100755 2022/day1/day1.py delete mode 100644 2022/day1/input.txt delete mode 100644 2022/day1/input_test.txt create mode 100755 2022/day10.py delete mode 100755 2022/day10/asd.py delete mode 100644 2022/day10/pzl.txt delete mode 100644 2022/day10/ref.txt create mode 100755 2022/day11.py delete mode 100755 2022/day11/asd.py delete mode 100644 2022/day11/pzl.txt delete mode 100644 2022/day11/ref.txt delete mode 100755 2022/day2/day2.py delete mode 100644 2022/day2/input.txt delete mode 100644 2022/day2/input_test.txt delete mode 100755 2022/day3/day3.py delete mode 100644 2022/day3/input.txt delete mode 100644 2022/day3/input_test.txt delete mode 100755 2022/day4/asd.py delete mode 100755 2022/day4/oneline.py delete mode 100644 2022/day4/pzl.txt delete mode 100644 2022/day4/ref.txt delete mode 100755 2022/day5/asd.py delete mode 100755 2022/day5/oneline.py delete mode 100644 2022/day5/pzl.txt delete mode 100644 2022/day5/pzl_mod.txt delete mode 100644 2022/day5/ref.txt delete mode 100644 2022/day5/ref_mod.txt delete mode 100755 2022/day6/asd.py delete mode 100644 2022/day6/day6.c delete mode 100644 2022/day6/pzl.txt delete mode 100644 2022/day6/ref.txt delete mode 100755 2022/day7/asd.py delete mode 100644 2022/day7/pzl.txt delete mode 100644 2022/day7/ref.txt delete mode 100755 2022/day8/asd.py delete mode 100644 2022/day8/day8.c delete mode 100644 2022/day8/pzl.txt delete mode 100644 2022/day8/ref.txt delete mode 100755 2022/day9/asd.py delete mode 100644 2022/day9/pzl.txt delete mode 100644 2022/day9/ref.txt delete mode 100644 2022/day9/ref2.txt create mode 100644 2022/in/day01.pzl create mode 100644 2022/in/day01.ref create mode 100644 2022/in/day02.pzl create mode 100644 2022/in/day02.ref create mode 100644 2022/in/day03.pzl create mode 100644 2022/in/day03.ref create mode 100644 2022/in/day04.pzl create mode 100644 2022/in/day04.ref create mode 100644 2022/in/day05.pzl create mode 100644 2022/in/day05.ref create mode 100644 2022/in/day05_mod.pzl create mode 100644 2022/in/day05_mod.ref create mode 100644 2022/in/day06.pzl create mode 100644 2022/in/day06.ref create mode 100644 2022/in/day07.pzl create mode 100644 2022/in/day07.ref create mode 100644 2022/in/day08.pzl create mode 100644 2022/in/day08.ref create mode 100644 2022/in/day09.pzl create mode 100644 2022/in/day09.ref create mode 100644 2022/in/day09_2.ref create mode 100644 2022/in/day10.pzl create mode 100644 2022/in/day10.ref create mode 100644 2022/in/day11.pzl create mode 100644 2022/in/day11.ref (limited to '2022') diff --git a/2022/day01.py b/2022/day01.py new file mode 100755 index 0000000..3ae9953 --- /dev/null +++ b/2022/day01.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 + +arr = [] +s = 0 +with open("in/day01.pzl") as f: + for line in f: + line = line.strip() + if line == '': + arr.append(s) + s = 0 + else: + s += int(line) + if s != 0: + arr.append(s) + s = 0 + +# print(arr) +print(max(arr)) + +arr = sorted(arr, key=lambda x: -x) +print(sum(arr[:3])) + + diff --git a/2022/day02.py b/2022/day02.py new file mode 100755 index 0000000..b499db3 --- /dev/null +++ b/2022/day02.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 + +import math +import time + +score1 = 0 +score2 = 0 + +# filename = "in/day02.ref" +filename = "in/day02.pzl" +with open(filename) as f: + for line in f: + line = line.strip() + abc, xyz = line[0], line[2] + + if abc == 'A': + abc = 1 + elif abc == 'B': + abc = 2 + elif abc == 'C': + abc = 3 + else: + print('ERROR') + + if xyz == 'X': + xyz = 1 + elif xyz == 'Y': + xyz = 2 + elif xyz == 'Z': + xyz = 3 + else: + print('ERROR') + + s1 = 0 + if abc == xyz: + print('draw') + s1 = 3 + xyz + # elif ((xyz + 1)%3) + 1 == abc: + elif abc%3 + 1 == xyz: + print('win') + s1 = 6 + xyz + else: + print('lose') + s1 = 0 + xyz + print('s1', s1) + score1 += s1 + + if xyz == 1: + # lose + s2 = 0 + (abc-1 + 2)%3 + 1 + elif xyz == 2: + # draw + s2 = 3 + abc + elif xyz == 3: + # win + s2 = 6 + (abc-1 + 1)%3 + 1 + print('s2', s2) + score2 += s2 + + print('score1', score1) + print('score2', score2) + diff --git a/2022/day03.py b/2022/day03.py new file mode 100755 index 0000000..22a79be --- /dev/null +++ b/2022/day03.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 + +# filename = "in/day03.ref" +filename = "in/day03.pzl" +res1 = 0 +with open(filename) as f: + for line in f: + line = line.strip() + middle = int(len(line)/2) + first = line[:middle] + last = line[middle:] + + print(first) + print(last) + d = dict() + for c in first: + d[c] = True + + for c in last: + if c in d: + print(c) + if 'a' <= c <= 'z': + add = ord(c) - ord('a') + 1 + print(add) + res1 += add + elif 'A' <= c <= 'Z': + add = ord(c) - ord('A') + 27 + print(add) + res1 += add + break + +res2 = 0 +with open(filename) as f: + for line in f: + first = line.strip() + second = next(f).strip() + third = next(f).strip() + print(first) + print(second) + print(third) + + s1 = set() + for c in first: + s1.add(c) + + s2 = set() + for c in second: + s2.add(c) + + s3 = set() + for c in third: + s3.add(c) + + si = s1.intersection(s2) + sii = si.intersection(s3) + print(sii) + + c = list(sii)[0] + if 'a' <= c <= 'z': + add = ord(c) - ord('a') + 1 + print(add) + res2 += add + elif 'A' <= c <= 'Z': + add = ord(c) - ord('A') + 27 + print(add) + res2 += add + +print(res1) +print(res2) + diff --git a/2022/day04-oneline.py b/2022/day04-oneline.py new file mode 100755 index 0000000..1d5ce6e --- /dev/null +++ b/2022/day04-oneline.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 + +import numpy as np +from functools import reduce + +# filename = "in/day04.ref" +filename = "in/day04.pzl" +res1 = 0 +res2 = 0 + +res1 = sum([1 for (ps,pe),(ds,de) in [[[int(n) for n in two.split('-')] for two in line.strip().split(',')] for line in open(filename)] if (ps<=ds and pe>=de)or(ps>=ds and pe<=de)]) +print('res1:', res1) + +res1 = sum([1 for a,b in [np.array([line.strip().split(",")[0].split("-"), line.strip().split(",")[1].split("-")], dtype = int) for line in open(filename)] if reduce(lambda a,b:a*b,np.sign(b-a)) <= 0]) +print('res1:', res1) + +res2 = sum([1 for (ps,pe),(ds,de) in [[[int(n) for n in two.split('-')] for two in line.strip().split(',')] for line in open(filename)] if (ds<=pe<=de)or(ps<=de<=pe)]) +print('res2:', res2) + diff --git a/2022/day04.py b/2022/day04.py new file mode 100755 index 0000000..0eee8f9 --- /dev/null +++ b/2022/day04.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +# filename = "in/day04.ref" +filename = "in/day04.pzl" +res1 = 0 +res2 = 0 +with open(filename) as f: + for line in f: + line = line.strip() + prvi,drugi = line.split(',') + ps, pe = [int(i) for i in prvi.split('-')] + ds, de = [int(i) for i in drugi.split('-')] + + if ps <= ds and pe >= de: + res1 += 1 + elif ps >= ds and pe <= de: + res1 += 1 + + if ds <= pe <= de: + res2 += 1 + elif ps <= de <= pe: + res2 += 1 + + print(res1) + print(res2) + diff --git a/2022/day05-oneline.py b/2022/day05-oneline.py new file mode 100755 index 0000000..4ece069 --- /dev/null +++ b/2022/day05-oneline.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +from re import findall +from functools import reduce + +# filename = "in/day05.ref" +filename = "in/day05.pzl" + +m = [ [i for i in line.rstrip('\n')[1::4] ] for line in open(filename) if line.find('[') != -1] +# print('m:', m) + +mt = [[m[col_n][row_n] for col_n,_ in enumerate(m) if m[col_n][row_n]!=' '][::-1] for row_n,_ in enumerate(m[0])] +# print('mt:', mt) + +a = [ [int(val) if i==0 else int(val)-1 for i,val in enumerate(findall('\d+', line))] for line in open(filename) if line[0] == 'm'] +# print('a:', a) + + +b1 = reduce(lambda state, action: [row[:-action[0]] if row_n==action[1] else row+state[action[1]][-action[0]:][::-1] if row_n==action[2] else row for row_n, row in enumerate(state)], a, mt) +# print('b1:', b1) +res1 = ''.join([i[-1] for i in b1]) +print('res1:', res1) + +b2 = reduce(lambda state, action: [row[:-action[0]] if row_n==action[1] else row+state[action[1]][-action[0]:] if row_n==action[2] else row for row_n, row in enumerate(state)], a, mt) +# print('b2:', b2) +res2 = ''.join([i[-1] for i in b2]) +print('res2:', res2) + diff --git a/2022/day05.py b/2022/day05.py new file mode 100755 index 0000000..b93cc78 --- /dev/null +++ b/2022/day05.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 + +from functools import reduce + +# filename = "in/day05_mod.ref" +filename = "in/day05_mod.pzl" + +res1 = '' +res2 = '' +f = open(filename) + +stacks1 = [] +stacks2 = [] +for line in f: + line = line.strip() + + if line == '': + break + + stack = [] + for c in line: + stack.append(c) + stacks1.append(stack) + stacks2.append(stack) +# print(stacks1) + +for line in f: + line = line.strip() + line = line.replace('move', '').replace('from ', '').replace('to ', '').strip() + mcount, mfrom, mto = [int(i) for i in line.split(' ')] + + mfrom -= 1 + mto -= 1 + + to_move = stacks1[mfrom][-mcount:] + stacks1[mfrom] = stacks1[mfrom][:-mcount] + stacks1[mto] = stacks1[mto] + to_move[::-1] + # print(stacks1) + + to_move = stacks2[mfrom][-mcount:] + stacks2[mfrom] = stacks2[mfrom][:-mcount] + stacks2[mto] = stacks2[mto] + to_move + # print(stacks2) + +f.close() + +print(stacks1) +print(stacks2) + +for i in stacks1: + res1 = res1 + i[-1] +print('res1:', res1) + +for i in stacks2: + res2 = res2 + i[-1] +print('res2:', res2) + diff --git a/2022/day06.c b/2022/day06.c new file mode 100644 index 0000000..5e79b72 --- /dev/null +++ b/2022/day06.c @@ -0,0 +1,54 @@ +#include +#include +#include +#include +#include +#include "util.h" + +// char filename[] = "in/day06.ref"; +char filename[] = "in/day06.pzl"; + +#define BUF_LEN 10000 +u8 buf[BUF_LEN]; +#define NAH_LEN 26 +u8 not_a_hashmap[NAH_LEN]; + +s32 solve(u32 n) +{ + int fd = open(filename, O_RDONLY); + u32 data_len = read(fd, buf, LEN(buf)); + if (data_len == LEN(buf)) { + printf("buffer probably not big enough\n"); + exit(1); + } + + for (u32 i = n; i < data_len; ++i) { + memset(not_a_hashmap, 0x00, LEN(not_a_hashmap)); + + for (u32 j = 1; j <= n; ++j) { + u32 index = (buf[i-j]-'a'); + if (index >= NAH_LEN) { + printf("nah too small\n"); + exit(1); + } + not_a_hashmap[index] = 1; + } + + u32 sum = 0; + for (u32 j = 0; j < NAH_LEN; ++j) { + sum += not_a_hashmap[j]; + } + if (sum == n) { + return i; + } + + } + return -1; +} + +int main() +{ + printf("res1: %d\n", solve(4)); + printf("res2: %d\n", solve(14)); +} + diff --git a/2022/day06.py b/2022/day06.py new file mode 100755 index 0000000..5a107df --- /dev/null +++ b/2022/day06.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +# import numpy as np +from functools import reduce +from re import findall +from copy import deepcopy + + +# filename = "in/day06.ref" +filename = "in/day06.pzl" + +res1 = 0 +res2 = 0 + +def solve(n): + f = open(filename) + for line in f: + line = line.strip() + for a in range(len(line)-n): + s = set() + for i in range(0,n): + s.add(line[a+i]) + + if len(s) == n: + # print(s) + res = a + n + return res + f.close() + +res1 = solve(4) +res2 = solve(14) + +print('res1:', res1) +print('res2:', res2) + diff --git a/2022/day07.py b/2022/day07.py new file mode 100755 index 0000000..7e3f593 --- /dev/null +++ b/2022/day07.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 + +# import numpy as np +from functools import reduce +from re import findall +from copy import deepcopy +import sys + +# filename = "in/day07.ref" +filename = "in/day07.pzl" +data = open(filename).read() +lines = [line for line in data.rstrip('\n').split('\n')] + +res1 = 0 +res2 = 0 + +pwd = '/' +fs = {'files':0} + +for line in lines: + + l = line.split(' ') + + if l[0] == '$': + if l[1] == 'cd': + if l[2] == '/': + pwd = '/' + elif l[2] == '..': + pwd = pwd[: -1 -pwd[:-1][::-1].find('/') ] + else: + pwd = pwd + l[2] + '/' + + # print(line) + # print(pwd) + + p = pwd.strip('/').split('/') + if p != ['']: + fsp = fs + for i in p: + if i not in fsp.keys(): + fsp[i] = {'files':0} + fsp = fsp[i] + + elif l[1] == 'ls': + continue + + else: + if l[0] == 'dir': + continue + size, name = int(l[0]), l[1] + + p = pwd.strip('/').split('/') + if p != ['']: + fsp = fs + for i in p: + fsp = fsp[i] + fsp['files'] += size + else: + fs['files'] += size + + +def print_fs(subfs, depth = 0): + for d in subfs: + if d == 'files': + print(depth * ' ', d, ' ', subfs[d], sep = '') + else: + print(depth * ' ', d, sep = '') + print_fs(subfs[d], depth+1) + +def rec_fs(subfs): + size = 0 + for d in subfs: + if d == 'files': + size += subfs[d] + global sizes_one + sizes_one.append(subfs[d]) + # print(d, size) + else: + size += rec_fs(subfs[d]) + + global sizes_cumulative + sizes_cumulative.append(size) + + return size + +sizes_one = list() +sizes_cumulative = list() + +# print(fs) +# print_fs(fs) + +rec_fs(fs) + +total_size = 70000000 +needed_size = 30000000 +used_size = sum(sizes_one) +delete_size = needed_size -(total_size - used_size) +total_size - used_size + +res1 = sum(filter(lambda x: x <= 100000, sizes_cumulative)) +res2 = list(filter(lambda x: x > delete_size, sorted(sizes_cumulative)))[0] + +print('res1:', res1) +print('res2:', res2) + diff --git a/2022/day08.c b/2022/day08.c new file mode 100644 index 0000000..e49e660 --- /dev/null +++ b/2022/day08.c @@ -0,0 +1,155 @@ +#include +#include +#include +#include +#include "util.h" + +s32 reduce(s32 (*f)(s32 x, s32 y), s32 arr[], s32 len) +{ + s32 ret = arr[0]; + + for (s32 i = 1; i < len; ++i) { + ret = f(ret, arr[i]); + } + + return ret; +} + +s32 mul(s32 x, s32 y) +{ + return x * y; +} + +s32 max(s32 x, s32 y) +{ + return x > y ? x : y; +} + +s32 count_char_in_string(char c, char *s) +{ + s32 count = 0; + do + if (c == *s) + count++; + while (*s++); + return count; +} + +char *goto_char_in_string(char c, char *s) +{ + do + if (c == *s) + return s; + while (*s++); + return NULL; +} + +#define PP(arr, y,x) *(*(arr+y)+x) + +// char filename[] = "in/day08.ref"; +char filename[] = "in/day08.pzl"; + +#define BUF_LEN 10000 +char file_buf[BUF_LEN]; + +int main() +{ + int fd = open(filename, O_RDONLY); + s32 data_len = read(fd, file_buf, LEN(file_buf)); + + if (data_len == -1) { + printf("error opening file\n"); + exit(1); + } else if (data_len == LEN(file_buf)) { + printf("buffer probably not big enough\n"); + exit(1); + } + file_buf[data_len] = '\0'; + + s32 y_len = count_char_in_string('\n', file_buf); + s32 x_len; + // printf("y_len: %d\n", y_len); + + s32 **arr = malloc(y_len * sizeof(s32*)); + s32 **flag = malloc(y_len * sizeof(s32*)); + char *start = file_buf; + for (s32 i = 0; i < y_len; ++i) { + char *end = goto_char_in_string('\n', start); + x_len = end - start; + // printf("x_len: %d\n", x_len); + + *(arr+i) = malloc(x_len * sizeof(s32*)); + *(flag+i) = malloc(x_len * sizeof(s32*)); + + for (s32 j = 0; j < x_len; ++j) { + *(*(arr+i) + j) = *(start + j) - '0'; + *(*(flag+i) + j) = 0; + } + start = end+1; + } + + + s32 res1 = 0; + s32 maxval; + +#define RES1_CHECK() \ + if (PP(arr, y, x) > maxval) { \ + maxval = PP(arr, y, x); \ + if (PP(flag, y, x) == 0) { \ + PP(flag, y, x) = 1; \ + res1 += 1; \ + } \ + } + + for (s32 y = 0; y < y_len; ++y) { + maxval = -1; + for (s32 x = 0; x < x_len; ++x) + RES1_CHECK(); + maxval = -1; + for (s32 x = x_len-1; x >= 0 ; --x) + RES1_CHECK(); + } + for (s32 x = 0; x < x_len; ++x) { + maxval = -1; + for (s32 y = 0; y < y_len; ++y) + RES1_CHECK(); + maxval = -1; + for (s32 y = y_len-1; y >= 0 ; --y) + RES1_CHECK(); + } + + + s32 res2 = 0; + for (s32 y = 0; y < y_len; ++y) { + for (s32 x = 0; x < x_len; ++x) { + + s32 rldu[4] = {0}; + for (s32 r = x+1; r < x_len; ++r) + if ((PP(arr,y,r) >= PP(arr,y,x)) || (r==(x_len-1))) { + rldu[0] += r-x; + break; + } + for (s32 l = x-1; l >= 0; --l) + if ((PP(arr,y,l) >= PP(arr,y,x)) || (l==0)) { + rldu[1] += x-l; + break; + } + for (s32 d = y+1; d < y_len; ++d) + if ((PP(arr,d,x) >= PP(arr,y,x)) || (d==(y_len-1))) { + rldu[2] += d-y; + break; + } + for (s32 u = y-1; u >= 0; --u) + if ((PP(arr,u,x) >= PP(arr,y,x)) || (u==0)) { + rldu[3] += y-u; + break; + } + res2 = max(res2, reduce(mul, rldu, LEN(rldu))); + } + } + + printf("res1: %d\n", res1); + printf("res2: %d\n", res2); + // asm("int3"); +} + diff --git a/2022/day08.py b/2022/day08.py new file mode 100755 index 0000000..4182d69 --- /dev/null +++ b/2022/day08.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 + +# import numpy as np +from functools import reduce +from re import findall +from copy import deepcopy +import sys + +# filename = "in/day08.ref" +filename = "in/day08.pzl" +data = open(filename).read().rstrip('\n') +lines = [line for line in data.split('\n')] + +res1 = 0 +res2 = 0 + + +y_len = len(lines) +x_len = len(lines[0]) +arr = [[int(lines[y][x]) for x in range(x_len)] for y in range(y_len)] + +edge_count = 2*(y_len-1) + 2*(x_len-1) +res1 += edge_count + +def get_len(arr): + if len(arr) == 0: + return 0 + + curr_max = -1 + for i,val in enumerate(arr): + if val < curr_max: + return i + curr_max = max(val, curr_max) + return i+1 + +def get_len2(compare, arr): + for i,val in enumerate(arr): + if val >= compare: + return i+1 + return len(arr) + + +def slice_x(arr, y, xs, xe, s=1): + return [arr[y][i] for i in range(xs, xe, s)] + +def slice_y(arr, x, ys, ye, s=1): + return [arr[i][x] for i in range(ys, ye, s)] + +scores = list() + +for y,_ in enumerate(arr): + for x,_ in enumerate(arr[y]): + v = arr[y][x] + if 0 < y < y_len-1 and 0 < x < x_len-1: + if all([v > arr[y][i] for i in range(0,x)]) or\ + all([v > arr[y][i] for i in range(x+1,x_len)]) or\ + all([v > arr[i][x] for i in range(0,y)]) or\ + all([v > arr[i][x] for i in range(y+1,y_len)]): + res1 += 1 + + mul = [ + get_len2(v, slice_x(arr, y, x+1, x_len)), + get_len2(v, slice_x(arr, y, x-1, -1, -1)), + get_len2(v, slice_y(arr, x, y+1, y_len)), + get_len2(v, slice_y(arr, x, y-1, -1, -1)) + ] + score = reduce(lambda x,y:x*y, mul) + scores.append(score) + + +res2 = max(scores) + +print('res1:', res1) +print('res2:', res2) + diff --git a/2022/day09.py b/2022/day09.py new file mode 100755 index 0000000..59bdf04 --- /dev/null +++ b/2022/day09.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python3 + +# import numpy as np +from functools import reduce +from re import findall +from copy import deepcopy +import sys +import time + +animate = False +# filename = "in/day09.ref" +# filename = "in/day09_2.ref" +filename = "in/day09.pzl" +data = open(filename).read() +lines = [line for line in data.rstrip('\n').split('\n')] + + +moves = [] +for a in lines: + m = [0, 0] + direction, count = a.split(' ') + if direction == 'R': + m = [1, 0] + elif direction == 'U': + m = [0, 1] + elif direction == 'D': + m = [0, -1] + elif direction == 'L': + m = [-1, 0] + + # m = [int(count)*i for i in m] + for _ in range(int(count)): + moves.append(m) + +# print(moves) + +res1 = 0 +h = [0,0] +t = [0,0] +visited = set() +visited.add(tuple(t)) + +for m in moves: + h = [hi + mi for hi,mi in zip(h,m)] + + dx = h[0] - t[0] + dy = h[1] - t[1] + + if abs(dx) > 1 or (abs(dx) > 0 and abs(dy) > 1): + t[0] += dx//abs(dx) + + if abs(dy) > 1 or (abs(dy) > 0 and abs(dx) > 1): + t[1] += dy//abs(dy) + + visited.add(tuple(t)) + + +res2 = 0 +ht = [[0,0] for i in range(10)] +visited9 = set() +visited9.add(tuple(ht[9])) + + +def print_grid(arr, c=''): + lx = 100 + ly = 40 + grid = [['.' for _ in range(lx)] for _ in range(ly)] + + for i, (x, y) in enumerate(arr): + try: + grid[-y+ly//2][x+lx//2] = c if c!='' else str(i) + except: + pass + + grid[ly//2][lx//2] = "s" + + print('\x1b[2J') + for line in grid: + for c in line: + print(c, end="") + print("") + time.sleep(1/20) + +for m in moves: + ht[0] = [hi + mi for hi,mi in zip(ht[0],m)] + + for i,_ in enumerate(ht): + if i == 0: + continue + dx = ht[i-1][0] - ht[i][0] + dy = ht[i-1][1] - ht[i][1] + + if abs(dx) > 1 or (abs(dx) > 0 and abs(dy) > 1): + ht[i][0] += dx//abs(dx) + + if abs(dy) > 1 or (abs(dy) > 0 and abs(dx) > 1): + ht[i][1] += dy//abs(dy) + + # print(ht) + visited9.add(tuple(ht[9])) + + if animate: + print_grid(ht) + +# print(visited9) + +res1 = len(visited) +res2 = len(visited9) + +if animate == True: + print_grid(visited9, c='#') +else: + print('res1:', res1) + print('res2:', res2) + diff --git a/2022/day1/day1.py b/2022/day1/day1.py deleted file mode 100755 index cf2ca85..0000000 --- a/2022/day1/day1.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python3 - -arr = [] -s = 0 -with open("input.txt") as f: - for line in f: - line = line.strip() - if line == '': - arr.append(s) - s = 0 - else: - s += int(line) - if s != 0: - arr.append(s) - s = 0 - -# print(arr) -print(max(arr)) - -arr = sorted(arr, key=lambda x: -x) -print(sum(arr[:3])) - - diff --git a/2022/day1/input.txt b/2022/day1/input.txt deleted file mode 100644 index 1e725b8..0000000 --- a/2022/day1/input.txt +++ /dev/null @@ -1,2262 +0,0 @@ -5916 -7281 -1715 -3853 -10283 -1455 -7807 -6117 - -33711 -6672 - -3988 -6947 -1674 -1928 -6128 -6361 -3817 -6141 -3301 -5473 -2609 -4262 -6105 - -2725 -7430 -7415 -6997 -4542 -2703 -7148 -2710 -5660 -7372 -2539 -7162 - -5377 -4274 -2793 -2911 -2113 -1077 -4115 -5871 -1079 -4336 -4894 -2088 -5408 -5535 -1982 - -3270 -1347 -4884 -2986 -6067 -5567 -5093 -4421 -2772 -4935 -6153 -1235 -3824 -6460 - -4131 -5183 -5329 -8021 -6096 -6053 -4352 -2016 -5055 -3031 -3379 - -1846 -3964 -16169 -10061 -16400 - -1519 -5378 -6590 -6782 -7072 -4011 -6581 -5871 -6112 -6836 - -3894 -5621 -6342 -6746 -1955 -3348 -5651 -1468 -7232 -3240 -3435 -4566 - -8079 -4170 -5034 - -7439 -1078 -4537 -7020 -2013 -2796 -1627 -1171 -3472 -2611 -3701 -1570 - -2874 -13468 -4739 -16126 -11847 - -37266 -25445 - -9722 -12162 -9507 -5369 - -10547 -5064 -10328 -7331 -2829 -7218 -2094 -8963 - -9828 -4878 -1582 -3494 -8656 - -4271 -8332 -1579 -6029 -13927 -5572 - -6709 -5200 -2009 -7145 -3739 -4750 -7173 -6257 -2520 -4878 -3730 -5773 - -3367 -11772 -4282 -9184 -6947 -2471 - -1112 -1186 -2178 -5993 -2098 -5243 -5223 -1709 -2290 -6327 - -8571 -4827 -4630 -2496 -6101 -10967 -9712 - -5730 -2663 -6857 -3517 -7938 -5069 -1825 -6498 -2716 -6798 -6394 - -2154 -5746 -3630 -4056 -6257 -6249 -4872 -1769 -8320 -1294 - -1469 -6784 -6869 -3459 -6487 -1003 -7296 -8054 -3027 -8338 - -1156 -5197 -6307 -3935 -4874 -2021 -2001 -2077 -3755 -4507 -4116 -1742 -1341 - -2602 -6117 -1059 -4689 -4430 -1216 -4126 -4810 -6270 -2819 -6013 -1589 -4496 -5670 - -5739 -8341 -9572 -6860 -5805 -6627 -3291 -5664 -1907 - -5359 -26291 - -2503 -8306 -6709 -4770 -7460 -5028 -6586 -1286 -4120 -4381 - -1049 -17368 - -5170 -1955 -6256 -2513 -2666 -2571 -1274 -4515 -2359 -5327 -6325 -1141 -5883 - -9948 -18400 -10491 -16743 - -1531 -2231 -3614 -6706 -3516 -5629 -1745 -2780 -2899 -2916 -3928 -4085 - -10012 -12228 -15603 -4551 -3922 - -12264 -13387 -6562 -6050 -12784 -11921 - -34920 -20549 - -4990 -5935 -4252 -4079 -1354 -9274 -3232 -1527 -5978 - -65379 - -1216 -5983 -12805 -6875 -2671 -2381 - -4320 -5687 -6760 -2023 -4263 -1892 -2926 - -3192 -10623 -10169 -12098 -1307 -11324 -2156 - -3749 -2564 -3627 -4701 -5104 -1052 -5035 -3742 -5456 -2150 -2042 -4326 -3053 -5006 -5142 - -5984 - -13641 -30009 - -13225 -5744 -8472 -8526 -5427 - -4593 -6409 -7212 -6755 - -4285 -8123 -6604 -1812 -4145 -9072 -7456 -9813 - -8572 -3737 -9989 -17372 - -3522 -11158 -11713 -1160 -10425 -9709 -7731 - -6503 -3369 -3225 -3899 - -31458 -29242 - -27980 -17901 - -3361 -2869 -1654 -5350 -6317 -8273 -6526 -2723 - -5186 -31304 - -12989 -11754 -11012 -5487 -3127 - -1627 -3229 -2818 -6410 -10184 -6946 -3349 -2976 - -4656 -4290 -3066 -5230 -3503 -1444 -3154 -3748 -2392 -2435 -2211 -2093 -3835 -2402 -1698 - -1311 -6276 - -3748 -4996 -6338 -8906 -11219 -1797 -6467 - -4241 -3011 -6574 -3945 -5947 -6398 -1505 -4799 -5325 -5559 -1735 - -13793 -9236 -9335 - -1031 -7087 -1933 -14085 -12694 - -2019 -2371 - -6900 -6067 -5355 -7415 -3735 -3616 -5010 -4661 -7376 -3971 -2233 -6296 - -7738 -2032 -2170 -6164 -6861 -2420 -5351 -2794 -9647 - -5785 -1391 -2213 -12440 - -2136 -1308 -3209 -3353 -3791 -5916 -5124 -1003 -2489 -5370 -3041 -4007 -2782 -2946 -5378 - -5848 -8012 -5443 -3056 -2550 -8199 -9613 -6809 -2623 - -16460 -1618 - -12239 - -3005 -1728 -7292 -7379 -3241 -5232 -8567 -5880 -4743 -8582 - -9983 -5730 -2346 -7669 -3723 -3102 -10038 -3634 - -5996 -7330 -1061 -5321 -3113 -3533 -6219 -4449 -1353 -5978 -1035 - -2951 -2249 -6361 -1322 -3363 -4667 -4494 -6531 -1530 -2968 -2552 -2249 -5052 - -4376 -13988 - -5472 -3797 -8451 -5091 -5804 -9664 -9061 -1726 -7215 - -2922 -4700 -6062 -5747 -4578 -2098 -1192 -1245 -4752 -1098 -1591 -4644 -5028 - -25366 - -5026 -1139 -6338 -1321 -5559 -3270 -6123 -2535 -1758 -1290 -4424 -3760 -3754 -5044 - -5414 -3035 -5760 -3894 -6727 -2297 -3800 -3285 -3127 -4110 -5435 -1321 - -1363 -5566 -3084 -6064 -1968 -2954 -5078 -5649 -5761 -1265 -5368 -2584 -1814 -4855 -4670 - -4580 -3174 -1343 -4299 -2930 -2209 -4883 -4404 -2899 -4431 -2433 -3444 -2183 -3816 - -2301 -3278 -6603 -5907 -6658 -3429 -3206 -5091 -4527 -3467 -4731 -2694 - -14883 -3132 -16229 -13353 - -4339 -4088 -4244 -1947 -2691 -6081 -1013 -3078 -1197 - -4565 -5429 -19061 -7019 - -5028 -1657 -5177 -1768 -3641 -3897 -3675 -1885 -1966 -1724 -6106 -5721 -5394 -1562 -3637 - -5590 -5469 -4382 -5375 -1656 -3496 -1553 -4737 -5521 -2951 -5633 -6099 -2365 - -3451 -6892 -4327 -6207 -6468 -1638 -6676 -3366 -6793 - -7999 -3815 -2828 -7726 -4747 -6494 -3227 -5024 -7550 - -10475 -24156 -1946 - -61232 - -3562 -11518 -5489 -13618 -8886 -4331 - -5068 -6620 -1899 -1742 -4183 -4792 -3300 -1636 -3644 -1716 -2247 - -21547 -25323 -17987 - -10463 -11220 -7134 -10719 -1274 -11774 - -22985 -19754 - -16499 -24689 - -2529 -4751 -2572 -4097 -6163 -5281 -3617 -3757 -3927 -3603 -3093 -6143 -4730 -3650 - -6393 -1523 -5956 -6591 -2063 -6414 -6834 -6649 -3808 -1286 -4953 -5087 -2796 - -3296 -2685 -5141 -3415 -7132 -4397 -4098 -6860 -5815 -4552 -2464 - -15557 - -1863 -1041 -4563 -1798 -3402 -1270 -3457 -1379 -5354 -2330 -6010 -3812 -2823 -6076 -4226 - -2619 -3202 -3298 -5199 -5356 -2239 -1567 -2088 -3106 -1639 -7116 -6917 - -1569 -7017 -4686 -8636 -8174 -1685 -5343 -4403 -1187 -3285 - -2886 -5763 -1469 -11516 -10773 -2282 -11137 - -10923 -8429 -11772 -8319 -4256 -6490 -2616 - -3491 -28517 - -15778 -16609 -25152 - -4645 -5384 -6744 -4612 -4405 -5450 -3678 -3894 -2232 -7232 -2377 -7056 - -4331 -2122 -4624 -1423 -6583 -5137 -1426 -1919 -2101 -4315 -4855 -6865 -1114 - -7694 -8630 -6754 -5894 -7170 -8178 -8646 -6369 -6162 -5627 - -8027 -1885 -6581 -2173 -3920 -7931 -1907 -6362 -6774 -5027 - -3841 -8648 -5530 -2754 -13794 -8974 - -1363 -5452 -6499 -5721 -2430 -2766 -6536 -1606 -5189 -1008 -6126 -2875 -5931 - -7517 -8727 -3495 -7647 -10130 -8585 -1435 - -3909 -6342 -5378 -11006 -6483 -6426 -4300 - -7358 -4616 -9891 -2965 -11555 -13437 - -6332 -3010 -7403 -1795 -7359 -5017 -6471 -2495 -2589 -7223 - -5359 -10446 -12714 -1727 -8024 - -11690 -3529 -6145 -8147 -15083 - -5461 -4939 -1905 -3342 -3385 -3920 -5609 -3524 -5645 -6882 -4355 -2263 -3464 - -67422 - -2437 -6392 -1206 -1253 -3402 -4722 -2867 -6304 -3139 -2120 -4953 -5095 -3647 - -16783 - -9717 -25377 -17887 - -6852 -8926 -10395 -2107 -8228 -7462 -5239 -10085 - -22658 -18276 -12253 - -3488 -4976 -4196 -3427 -4603 -1579 -6785 -6656 -5143 -1109 -5507 - -14794 -28617 - -2296 -2367 -1865 -9975 -1988 -3950 -7755 -3008 - -8090 -8620 -11016 -11153 -5513 -2683 -4080 - -10557 -2744 -11379 -8339 -1908 -3088 - -8659 -9142 -1838 -10380 -7386 -4599 -9768 -3718 - -2941 -9112 -6492 -2847 -1562 -8956 - -7867 -4589 -9354 -3953 -7557 -2528 -8845 -8845 -1468 - -7065 -10043 -7109 -4063 -2987 - -11800 -5009 -5108 -4783 -12570 - -61504 - -5512 -1432 -6118 -6389 -2752 -5032 -1688 -5662 -6690 -4760 -6248 -3515 -6122 - -4127 -1192 -3521 -4583 -3060 -5306 -2783 -1949 -3633 -5486 -4799 -2056 -2800 -5770 - -19956 -11717 -16021 -3566 - -2387 -4083 -5811 -3849 -3496 -2213 -4107 -4588 -1995 -1228 -5055 -6133 -1759 - -33909 - -4517 -2866 -1068 -4227 -1063 -4361 -3775 -1875 -1073 -3639 -3237 -4783 -5372 -4323 -3275 - -13452 -14869 -23151 - -12595 -9113 -9304 -5185 -5235 -3787 - -6269 -1291 -2735 -3495 -2070 -5552 -4185 -3574 -4856 -4845 -1211 -4071 -5889 -3287 - -4307 -1452 -2411 -8024 -2614 -7541 -5120 -3104 -3937 -2592 - -37000 -12395 - -4725 -8239 -3949 -9498 -9488 -6151 -5996 - -1748 -3706 -6210 -5673 -3791 -5378 -6384 -2993 -4521 -1687 -2437 -3063 -4262 - -10776 - -1329 -2732 -4136 -3270 -7983 -6004 -4285 -7196 -7543 -7826 - -5324 -15037 -11331 -14308 -13527 - -1542 -4771 -4065 -3939 -5925 -6740 -5121 -6854 -1797 -2246 -2036 -5105 -5555 - -9669 -8993 -7817 -5442 -10974 -7509 -8967 - -46998 - -8151 -8919 -5590 -1172 -12588 -12730 - -1584 -7654 - -25613 - -10908 -3168 -6477 -2079 -1440 -6280 - -7201 -5717 -8338 -1740 -2479 -1984 -1751 -8594 -7637 -1089 - -14411 -3771 -7202 -3251 -2650 - -5964 -3451 -1718 -1723 -2658 -2163 -3113 -6200 -2399 -5498 -1571 -5872 -2842 -6443 - -2611 -3129 -3150 -4293 -3362 -5035 -5682 -1950 -4556 -6069 -1061 -3628 -5222 -2266 -2326 - -3979 -3488 -4876 -2074 -5871 -3413 -3968 -4870 -4654 -3475 -3151 -3581 -4218 -1086 - -1521 -3326 -3537 -3223 -2599 -2264 -3004 -2885 -6521 -4096 -3015 -2034 - -9175 -10101 -6721 -5683 -8376 -3584 - -8994 -12517 -5524 -8860 -1700 - -5976 -5345 -1916 -1376 -4610 -4637 -1222 -1823 -5969 -4598 -1266 -3058 -3274 -3196 -2533 - -4151 -4606 -2939 -7433 -7934 -1433 -7226 -3391 -6444 -3292 -3707 - -13678 -1900 -1316 -2999 -4739 - -10131 -8655 -3662 -6570 -9957 -2535 -3312 - -3632 -1192 -6521 -7333 -1874 -6379 -6505 -3737 -5705 -6127 -3099 -5289 - -13342 -10976 -7459 -17656 - -4441 -2033 -4373 -6988 -5037 -3301 -4940 -5675 -1654 -2206 -6505 -1171 - -23804 -22215 - -5917 -1679 -5720 -2327 -2111 -1479 -5369 -1455 -4047 -2609 -4059 -5461 -3726 -5245 -4617 - -3832 - -30019 -36074 - -2301 -2878 -2284 -2359 -6149 -5411 -4323 -2135 -3423 -5649 -5302 -2837 -4670 -5240 - -2535 -3698 -4005 -4530 -3483 -3840 -5770 -6032 -2261 -4189 -4715 -6289 -3112 -5324 - -5734 -4573 -2286 -1328 -5187 -6665 -5591 -2782 -4429 -5214 -7126 - -4378 -1546 -5909 -5252 -12837 -9857 - -6943 -7103 -6885 -2216 -2277 -5110 -3147 -1669 -2405 - -9766 -2431 -8424 -3505 -4371 - -7819 -3429 -2003 -7906 -4196 -4966 -6544 -2194 -5282 -3391 - -5196 -7087 -5152 -4841 -1323 -8180 -8375 -2274 -9193 - -2455 -9393 -3353 -3473 -6684 -8779 -8869 -1379 -6049 - -10423 -7768 -7405 -8893 -6566 -1104 -2981 -6618 - -2320 - -5330 -4166 -6922 -3242 -4383 -7546 -7715 -7988 -8012 -1877 - -10491 -3303 -2681 -2093 -4378 -6167 -2854 -5345 - -3312 -12989 -13062 -7486 -13302 -1205 - -58470 - -13413 -4298 -3133 -7842 -9040 - -4374 -7227 -10320 -2654 -5348 -12005 - -13208 -7384 -11355 -11780 -7356 -1871 - -1615 -6191 -1367 -1969 -4694 -1704 -6816 -3502 -5382 -4902 -4140 -3525 -5102 - -7778 -5765 -3407 -1334 -8488 -4870 -5197 -5158 -7332 -6025 - -3114 -15591 -23604 - -25210 -12504 -22559 - -1906 -6500 -1781 -2858 -4947 -3217 -3577 -4332 -1509 -6900 -1180 -5648 -3821 - -3982 -4400 -4655 -2599 -2430 -1743 -1817 -1626 -1880 -2769 - -9617 -7677 -3341 -4398 -8994 -10662 -5805 - -2984 -4321 -1939 -4864 -10130 -1227 -7189 - -3586 -4161 -3089 -2857 -2931 -8877 -3311 -5180 -4607 - -2539 -4289 -1168 -6262 -4551 -1731 -1292 -2442 -1423 -1619 -6126 -5220 -5577 - -1769 -4044 -1064 -1380 -2814 -7936 -2928 -3053 -3109 -2695 - -3502 -3521 -4581 -2917 -7040 -1876 -4819 -6214 -2779 -2169 -4885 -5352 - -9675 -13851 -9906 -1245 - -7934 -2860 -17685 - -4982 -3620 -2583 -1264 -2218 -6499 -4028 -9082 -2112 - -3761 -3665 -3717 -1112 -9380 -3463 -9677 -5469 -4111 - -6450 -14269 -17362 -1469 - -9305 -1360 -2214 -1625 -6197 -1322 -7217 -1076 -9466 - -2572 -6102 -7582 -13444 -8038 -1523 - -2212 -7180 -6025 -5842 -2433 -5261 -6975 -8067 -1247 -2153 -3311 - -1770 -5359 -6076 -5750 -4681 -8009 -5273 -3051 -7465 -6530 - -3373 -5040 -4365 -4906 -3988 -2941 -4778 -5635 -4277 -5298 -3161 -4611 -3880 -2808 -5151 - -15491 -3325 -4869 -12203 - -20880 -27057 - -5023 -7729 -7517 -6546 -1217 -7548 -8017 -7453 -6909 -7762 - -16756 - -1104 -2160 -4999 -2256 -2061 -2899 -1677 -1202 -4950 -6408 -2614 -1029 -6114 -3983 - -1676 -22625 -24638 - -6252 -6116 -6544 -4736 -4360 -6578 -2026 -8438 -4904 -5071 - -6250 -1604 -5152 -4034 -4210 -2452 -1982 -1462 -1338 -2083 -1618 -4563 -4859 - -1970 -7309 -2481 -7603 -7395 -6379 -6398 -6117 -7246 -2876 -3027 - -5903 -1822 -5861 -4894 -6005 -4571 -4555 -6531 -5464 -3609 -6464 -7134 - -1225 -21041 -7411 - -6970 -7008 -2951 -2131 -5453 -4772 -3154 -6810 -6825 -4469 -1413 - -1056 -5979 -7996 -11013 -4330 -12024 -10085 - -5270 -2532 -2411 -1372 -2690 -5956 -2638 -3667 -4929 -4946 -4141 -1727 -3957 -3987 -5032 - -11710 -2443 -8104 -9459 -5216 -4656 -9892 - -6455 -7683 -6891 -3883 -5618 -3631 -8120 -4878 -3746 - -8872 -14142 -7663 -14581 -7294 - -3656 -7094 -4543 -7459 -4517 -4732 -4501 -3358 -4838 -4205 -2077 -4579 - -7562 -2081 -8129 -6791 -10059 -2783 -4002 -5055 - -3431 -4855 -6062 -7023 -2386 -4158 -6753 -9088 -3315 - -1011 -3354 -5796 -9625 -3172 -5466 -2276 -8053 -4692 - -4232 -5937 -4857 -4515 -3142 -4902 -2726 -1425 -4999 -3980 -3225 -3083 -3054 -5380 -2547 - -1161 -5732 -5773 -1553 -1317 -3005 -1882 -7352 - -7392 -1908 -6482 -3445 -7074 -8522 -9787 -6791 - -3421 -5673 -5874 -4044 -4264 -2367 -4127 -1186 -4172 -5972 -3405 -2272 -1702 -5672 -4004 - -25299 -34008 - -4160 -6041 -8263 -4164 -2317 -2395 -9046 -5315 -7069 - -5362 -7912 -5760 -6799 -1462 -2520 -9667 -6333 -1055 - -35513 -6387 - -10814 -4122 -11320 -6445 -11264 -5322 -7651 - -5518 -3507 -6489 -11057 -7094 -2014 -3874 - -17936 - -2573 -7532 -1617 -5007 -4781 -4238 -5023 -7946 -7218 -6051 -6517 - -5524 -9035 -2723 -10089 -8048 -7010 -3673 - -11048 -4936 -11979 -4390 -2639 -9910 - -50344 - -5440 -5049 -7437 -2658 -8751 -3995 -1955 -4056 -7203 -3175 diff --git a/2022/day1/input_test.txt b/2022/day1/input_test.txt deleted file mode 100644 index 2094f91..0000000 --- a/2022/day1/input_test.txt +++ /dev/null @@ -1,14 +0,0 @@ -1000 -2000 -3000 - -4000 - -5000 -6000 - -7000 -8000 -9000 - -10000 diff --git a/2022/day10.py b/2022/day10.py new file mode 100755 index 0000000..feb0034 --- /dev/null +++ b/2022/day10.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 + +# import numpy as np +from functools import reduce +from re import findall +from copy import deepcopy +import sys + +# filename = "in/day10.ref" +filename = "in/day10.pzl" +data = open(filename).read() +lines = [line for line in data.rstrip('\n').split('\n')] + +res1 = 0 +x = 1 +cycles = 1 +for line in lines: + opcodes = line.split(' ') + if opcodes[0] == 'addx': + if cycles == 19 or (cycles+20) % 40 == 39: + a = (cycles+1) * x + res1 += a + elif cycles == 20 or (cycles+20) % 40 == 0: + a = cycles * x + res1 += a + x += int(opcodes[1]) + cycles += 2 + elif opcodes[0] == 'noop': + if cycles == 20 or (cycles+20) % 40 == 0: + a = cycles * x + res1 += a + cycles += 1 + + +res2 = 'read it' +crt = [0 for _ in range(40*6)] +x = 1 +cycles = 1 +def print_crt(crt): + for i,val in enumerate(crt): + print('.' if val == 0 else '#', end='') + if (i+1) % 40 == 0: + print() + print() + +def sprite(crt, cycles, x): + s = [1 if abs(x-i) % 40 in [39, 0, 1] else 0 for i in range(40*6)] + c = [1 if abs(cycles-i-1) % (40*6) == 0 else 0 for i in range(40*6)] + + m = list(map(lambda x: x[0]*x[1], zip(c,s))) + crt = list(map(lambda x: x[0]+x[1], zip(crt,m))) + return crt + +for line in lines: + opcodes = line.split(' ') + if opcodes[0] == 'addx': + crt = sprite(crt, cycles+0, x) + crt = sprite(crt, cycles+1, x) + x += int(opcodes[1]) + cycles += 2 + elif opcodes[0] == 'noop': + crt = sprite(crt, cycles+0, x) + a = cycles * x + cycles += 1 + # print(cycles, x) + +print_crt(crt) + +print('res1:', res1) +print('res2:', res2) + diff --git a/2022/day10/asd.py b/2022/day10/asd.py deleted file mode 100755 index 7281026..0000000 --- a/2022/day10/asd.py +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env python3 - -# import numpy as np -from functools import reduce -from re import findall -from copy import deepcopy -import sys - -# filename = "ref.txt" -filename = "pzl.txt" -data = open(filename).read() -lines = [line for line in data.rstrip('\n').split('\n')] - -res1 = 0 -x = 1 -cycles = 1 -for line in lines: - opcodes = line.split(' ') - if opcodes[0] == 'addx': - if cycles == 19 or (cycles+20) % 40 == 39: - a = (cycles+1) * x - res1 += a - elif cycles == 20 or (cycles+20) % 40 == 0: - a = cycles * x - res1 += a - x += int(opcodes[1]) - cycles += 2 - elif opcodes[0] == 'noop': - if cycles == 20 or (cycles+20) % 40 == 0: - a = cycles * x - res1 += a - cycles += 1 - - -res2 = 'read it' -crt = [0 for _ in range(40*6)] -x = 1 -cycles = 1 -def print_crt(crt): - for i,val in enumerate(crt): - print('.' if val == 0 else '#', end='') - if (i+1) % 40 == 0: - print() - print() - -def sprite(crt, cycles, x): - s = [1 if abs(x-i) % 40 in [39, 0, 1] else 0 for i in range(40*6)] - c = [1 if abs(cycles-i-1) % (40*6) == 0 else 0 for i in range(40*6)] - - m = list(map(lambda x: x[0]*x[1], zip(c,s))) - crt = list(map(lambda x: x[0]+x[1], zip(crt,m))) - return crt - -for line in lines: - opcodes = line.split(' ') - if opcodes[0] == 'addx': - crt = sprite(crt, cycles+0, x) - crt = sprite(crt, cycles+1, x) - x += int(opcodes[1]) - cycles += 2 - elif opcodes[0] == 'noop': - crt = sprite(crt, cycles+0, x) - a = cycles * x - cycles += 1 - # print(cycles, x) - -print_crt(crt) - -print('res1:', res1) -print('res2:', res2) - diff --git a/2022/day10/pzl.txt b/2022/day10/pzl.txt deleted file mode 100644 index 540f82a..0000000 --- a/2022/day10/pzl.txt +++ /dev/null @@ -1,145 +0,0 @@ -addx 1 -noop -noop -addx 4 -addx 5 -addx -2 -addx 19 -addx -12 -addx 3 -addx -2 -addx 4 -noop -noop -noop -addx 3 -addx -8 -addx 15 -addx 1 -noop -noop -addx 6 -addx -1 -noop -addx -38 -noop -addx 10 -addx -5 -noop -addx 3 -addx 2 -addx 7 -noop -noop -addx 3 -noop -addx 2 -addx 3 -addx -2 -addx 2 -addx 7 -noop -noop -addx 9 -noop -addx -12 -noop -addx 11 -addx -38 -noop -noop -noop -addx 5 -addx 5 -noop -noop -noop -addx 3 -addx -12 -addx 14 -noop -addx 1 -addx 3 -addx 1 -addx 5 -addx 4 -addx 1 -noop -noop -noop -noop -noop -addx -9 -addx 17 -addx -39 -addx 38 -addx -8 -addx -26 -addx 3 -addx 4 -addx 16 -noop -addx -11 -addx 3 -noop -addx 2 -addx 3 -addx -2 -addx 2 -noop -addx 13 -addx -8 -noop -addx 7 -addx -5 -addx 8 -addx -40 -addx 16 -addx -9 -noop -addx -7 -addx 8 -addx 2 -addx 7 -noop -noop -addx -15 -addx 16 -addx 2 -addx 5 -addx 2 -addx -20 -addx 12 -addx 11 -addx 8 -addx -1 -addx 3 -noop -addx -39 -addx 2 -noop -addx 5 -noop -noop -noop -addx 4 -addx 1 -noop -noop -addx 2 -addx 5 -addx 2 -addx 1 -addx 4 -addx -1 -addx 2 -noop -addx 2 -noop -addx 8 -noop -noop -noop -addx -10 -noop -noop diff --git a/2022/day10/ref.txt b/2022/day10/ref.txt deleted file mode 100644 index 37ee8ee..0000000 --- a/2022/day10/ref.txt +++ /dev/null @@ -1,146 +0,0 @@ -addx 15 -addx -11 -addx 6 -addx -3 -addx 5 -addx -1 -addx -8 -addx 13 -addx 4 -noop -addx -1 -addx 5 -addx -1 -addx 5 -addx -1 -addx 5 -addx -1 -addx 5 -addx -1 -addx -35 -addx 1 -addx 24 -addx -19 -addx 1 -addx 16 -addx -11 -noop -noop -addx 21 -addx -15 -noop -noop -addx -3 -addx 9 -addx 1 -addx -3 -addx 8 -addx 1 -addx 5 -noop -noop -noop -noop -noop -addx -36 -noop -addx 1 -addx 7 -noop -noop -noop -addx 2 -addx 6 -noop -noop -noop -noop -noop -addx 1 -noop -noop -addx 7 -addx 1 -noop -addx -13 -addx 13 -addx 7 -noop -addx 1 -addx -33 -noop -noop -noop -addx 2 -noop -noop -noop -addx 8 -noop -addx -1 -addx 2 -addx 1 -noop -addx 17 -addx -9 -addx 1 -addx 1 -addx -3 -addx 11 -noop -noop -addx 1 -noop -addx 1 -noop -noop -addx -13 -addx -19 -addx 1 -addx 3 -addx 26 -addx -30 -addx 12 -addx -1 -addx 3 -addx 1 -noop -noop -noop -addx -9 -addx 18 -addx 1 -addx 2 -noop -noop -addx 9 -noop -noop -noop -addx -1 -addx 2 -addx -37 -addx 1 -addx 3 -noop -addx 15 -addx -21 -addx 22 -addx -6 -addx 1 -noop -addx 2 -addx 1 -noop -addx -10 -noop -noop -addx 20 -addx 1 -addx 2 -addx 2 -addx -6 -addx -11 -noop -noop -noop diff --git a/2022/day11.py b/2022/day11.py new file mode 100755 index 0000000..25aa8a7 --- /dev/null +++ b/2022/day11.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 + +# import numpy as np +from functools import reduce +from re import findall +from copy import deepcopy +import sys + +# filename = "in/day11.ref" +filename = "in/day11.pzl" +data = open(filename).read() + +num_mon = len([None for _ in data.split('\n\n')]) + +mons = list() +itmss = list() +for m in data.split('\n\n'): + lines = [line for line in m.rstrip('\n').split('\n')] + mon = dict() + # mon['n'] = int(lines[0][-2]) + # mon['items'] = [int(i.strip()) for i in lines[1].split(':')[-1].split(',')] + itmss.append([int(i.strip()) for i in lines[1].split(':')[-1].split(',')]) + mon['op'] = lines[2].split('=')[-1].strip() + mon['test'] = int(lines[3].split(' ')[-1]) + mon['true'] = int(lines[4].split(' ')[-1]) + mon['false'] = int(lines[5].split(' ')[-1]) + mons.append(mon) + +# for mon,itms in zip(mons,itmss): +# print(mon) +# print(itms) + +def get_next_one_ape(n, old_timss, sums, div=0, mod=0): + new_itmss = [list() for _ in old_timss] + + for ape,itms in enumerate(old_timss): + for wl in itms: + if n == ape: + old = wl + wl = eval(mons[ape]['op']) + if div != 0: + wl = int(wl/div) + if mod != 0: + wl = wl % mod + sums[ape] += 1 + if wl % mons[ape]['test'] == 0: + new_itmss[mons[ape]['true']].append(wl) + else: + new_itmss[mons[ape]['false']].append(wl) + else: + new_itmss[ape].append(wl) + return new_itmss, sums + + +def get_next(itmss, sums, div=0, mod=0): + for ape,itms in enumerate(itmss): + itmss, sums = get_next_one_ape(ape, itmss, sums, div=div, mod=mod) + return itmss, sums + + +res1 = 0 +div1 = 3 +sums1 = [0 for _ in itmss] +itmss1 = itmss +for i in range(20): + itmss1, sums1 = get_next(itmss1, sums1, div=div1) +res1 = reduce(lambda x,y:x*y, sorted(sums1, reverse=True)[:2]) + + +res2 = 0 +mod2 = reduce(lambda x,y:x*y, map(lambda a:a['test'],mons)) +sums2 = [0 for _ in itmss] +itmss2 = itmss +for i in range(1, 10001): + itmss2, sums2 = get_next(itmss2, sums2, mod=mod2) + # if i in [1, 20, 100, 200, 300, 400, 500, 1000, 2000, 10000]: + # print(i, sums2) +res2 = reduce(lambda x,y:x*y, sorted(sums2, reverse=True)[:2]) + +print('res1:', res1) +print('res2:', res2) + diff --git a/2022/day11/asd.py b/2022/day11/asd.py deleted file mode 100755 index f89179c..0000000 --- a/2022/day11/asd.py +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env python3 - -# import numpy as np -from functools import reduce -from re import findall -from copy import deepcopy -import sys - -# filename = "ref.txt" -filename = "pzl.txt" -data = open(filename).read() - -num_mon = len([None for _ in data.split('\n\n')]) - -mons = list() -itmss = list() -for m in data.split('\n\n'): - lines = [line for line in m.rstrip('\n').split('\n')] - mon = dict() - # mon['n'] = int(lines[0][-2]) - # mon['items'] = [int(i.strip()) for i in lines[1].split(':')[-1].split(',')] - itmss.append([int(i.strip()) for i in lines[1].split(':')[-1].split(',')]) - mon['op'] = lines[2].split('=')[-1].strip() - mon['test'] = int(lines[3].split(' ')[-1]) - mon['true'] = int(lines[4].split(' ')[-1]) - mon['false'] = int(lines[5].split(' ')[-1]) - mons.append(mon) - -# for mon,itms in zip(mons,itmss): -# print(mon) -# print(itms) - -def get_next_one_ape(n, old_timss, sums, div=0, mod=0): - new_itmss = [list() for _ in old_timss] - - for ape,itms in enumerate(old_timss): - for wl in itms: - if n == ape: - old = wl - wl = eval(mons[ape]['op']) - if div != 0: - wl = int(wl/div) - if mod != 0: - wl = wl % mod - sums[ape] += 1 - if wl % mons[ape]['test'] == 0: - new_itmss[mons[ape]['true']].append(wl) - else: - new_itmss[mons[ape]['false']].append(wl) - else: - new_itmss[ape].append(wl) - return new_itmss, sums - - -def get_next(itmss, sums, div=0, mod=0): - for ape,itms in enumerate(itmss): - itmss, sums = get_next_one_ape(ape, itmss, sums, div=div, mod=mod) - return itmss, sums - - -res1 = 0 -div1 = 3 -sums1 = [0 for _ in itmss] -itmss1 = itmss -for i in range(20): - itmss1, sums1 = get_next(itmss1, sums1, div=div1) -res1 = reduce(lambda x,y:x*y, sorted(sums1, reverse=True)[:2]) - - -res2 = 0 -mod2 = reduce(lambda x,y:x*y, map(lambda a:a['test'],mons)) -sums2 = [0 for _ in itmss] -itmss2 = itmss -for i in range(1, 10001): - itmss2, sums2 = get_next(itmss2, sums2, mod=mod2) - # if i in [1, 20, 100, 200, 300, 400, 500, 1000, 2000, 10000]: - # print(i, sums2) -res2 = reduce(lambda x,y:x*y, sorted(sums2, reverse=True)[:2]) - -print('res1:', res1) -print('res2:', res2) - diff --git a/2022/day11/pzl.txt b/2022/day11/pzl.txt deleted file mode 100644 index f6d24aa..0000000 --- a/2022/day11/pzl.txt +++ /dev/null @@ -1,55 +0,0 @@ -Monkey 0: - Starting items: 76, 88, 96, 97, 58, 61, 67 - Operation: new = old * 19 - Test: divisible by 3 - If true: throw to monkey 2 - If false: throw to monkey 3 - -Monkey 1: - Starting items: 93, 71, 79, 83, 69, 70, 94, 98 - Operation: new = old + 8 - Test: divisible by 11 - If true: throw to monkey 5 - If false: throw to monkey 6 - -Monkey 2: - Starting items: 50, 74, 67, 92, 61, 76 - Operation: new = old * 13 - Test: divisible by 19 - If true: throw to monkey 3 - If false: throw to monkey 1 - -Monkey 3: - Starting items: 76, 92 - Operation: new = old + 6 - Test: divisible by 5 - If true: throw to monkey 1 - If false: throw to monkey 6 - -Monkey 4: - Starting items: 74, 94, 55, 87, 62 - Operation: new = old + 5 - Test: divisible by 2 - If true: throw to monkey 2 - If false: throw to monkey 0 - -Monkey 5: - Starting items: 59, 62, 53, 62 - Operation: new = old * old - Test: divisible by 7 - If true: throw to monkey 4 - If false: throw to monkey 7 - -Monkey 6: - Starting items: 62 - Operation: new = old + 2 - Test: divisible by 17 - If true: throw to monkey 5 - If false: throw to monkey 7 - -Monkey 7: - Starting items: 85, 54, 53 - Operation: new = old + 3 - Test: divisible by 13 - If true: throw to monkey 4 - If false: throw to monkey 0 diff --git a/2022/day11/ref.txt b/2022/day11/ref.txt deleted file mode 100644 index 30e09e5..0000000 --- a/2022/day11/ref.txt +++ /dev/null @@ -1,27 +0,0 @@ -Monkey 0: - Starting items: 79, 98 - Operation: new = old * 19 - Test: divisible by 23 - If true: throw to monkey 2 - If false: throw to monkey 3 - -Monkey 1: - Starting items: 54, 65, 75, 74 - Operation: new = old + 6 - Test: divisible by 19 - If true: throw to monkey 2 - If false: throw to monkey 0 - -Monkey 2: - Starting items: 79, 60, 97 - Operation: new = old * old - Test: divisible by 13 - If true: throw to monkey 1 - If false: throw to monkey 3 - -Monkey 3: - Starting items: 74 - Operation: new = old + 3 - Test: divisible by 17 - If true: throw to monkey 0 - If false: throw to monkey 1 diff --git a/2022/day2/day2.py b/2022/day2/day2.py deleted file mode 100755 index 727bb31..0000000 --- a/2022/day2/day2.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env python3 - -import math -import time - -score1 = 0 -score2 = 0 - -# filename = "input_test.txt" -filename = "input.txt" -with open(filename) as f: - for line in f: - line = line.strip() - abc, xyz = line[0], line[2] - - if abc == 'A': - abc = 1 - elif abc == 'B': - abc = 2 - elif abc == 'C': - abc = 3 - else: - print('ERROR') - - if xyz == 'X': - xyz = 1 - elif xyz == 'Y': - xyz = 2 - elif xyz == 'Z': - xyz = 3 - else: - print('ERROR') - - s1 = 0 - if abc == xyz: - print('draw') - s1 = 3 + xyz - # elif ((xyz + 1)%3) + 1 == abc: - elif abc%3 + 1 == xyz: - print('win') - s1 = 6 + xyz - else: - print('lose') - s1 = 0 + xyz - print('s1', s1) - score1 += s1 - - if xyz == 1: - # lose - s2 = 0 + (abc-1 + 2)%3 + 1 - elif xyz == 2: - # draw - s2 = 3 + abc - elif xyz == 3: - # win - s2 = 6 + (abc-1 + 1)%3 + 1 - print('s2', s2) - score2 += s2 - - print('score1', score1) - print('score2', score2) - diff --git a/2022/day2/input.txt b/2022/day2/input.txt deleted file mode 100644 index 1930858..0000000 --- a/2022/day2/input.txt +++ /dev/null @@ -1,2500 +0,0 @@ -C Z -C Z -A X -A X -B Z -B Z -B Z -A Z -B X -A X -A X -A X -C Z -C Z -C X -A X -A X -A X -C Z -B Z -C Z -A Y -B Z -A X -C Y -A X -A X -C Y -C Z -A Y -B Z -A X -C Y -B Z -B Z -B Z -A X -C X -C X -B Z -A X -C Z -A X -B Z -A Y -C X -A X -C Z -C Z -B Z -C Y -C X -C X -C X -C X -A Y -C Y -C Z -C Y -A X -C Y -A X -B Z -A Y -C X -A X -B Y -A X -C X -C X -C Z -A X -C X -A X -C X -B Z -A Z -B Y -B Z -B Z -A X -C Y -B X -A X -A X -B Z -A X -C X -C Z -C Z -A X -C Z -C Z -C Z -C X -C Z -A X -B Z -B Y -C Z -B Z -B Z -A X -B Z -C Y -C Z -A X -A Y -C Z -A X -B Y -C Y -C Z -A X -C Y -C X -A X -C X -A X -C Z -A X -C Y -A Y -C Z -C X -C Y -C Y -A Y -A Y -C Y -C Y -A Y -A X -C Z -C Z -C X -C X -C Z -A Y -C Z -C Z -A Y -A Y -B Z -A X -B Z -C Y -B Z -C Z -C Y -C Y -B Y -C X -A X -A X -A X -A Y -A X -C Z -C Z -C Z -A X -B Z -A X -B Z -C Y -C Z -A Y -C Y -A X -A X -C Z -B X -C Z -C Z -B Z -B Z -B Z -C Z -C X -C Z -A X -B Z -C Z -C X -A X -A Y -B Y -A X -B Z -A X -C Z -C Z -C X -B Z -C Z -C Z -C X -A X -A X -B Y -C Y -C Z -B Y -A X -B Z -A X -B X -B Z -C X -C X -C Y -C X -B Y -B Z -C X -A Y -C X -C Y -A X -C Z -C Z -C X -B Z -A Y -B Z -A Y -B X -A X -C Z -B Z -C X -C X -C X -A X -C X -B Z -C Z -B Y -B Z -A X -A X -C Z -B Z -A X -A Z -C Y -B Z -C X -C Z -A Y -C X -A X -A X -A Y -B Z -A X -B Z -A Y -B X -C X -C Y -A X -C Z -B X -C Z -C X -C X -C Z -A X -B Z -C Z -C X -C Z -B Y -A X -C X -C Y -A X -C Z -A X -B Z -C X -C X -B Z -C Z -C Z -C Y -A X -C Z -C X -A X -C Y -C Z -C Z -C Y -B Y -B Z -A X -B Y -C X -A X -A X -C Y -C Z -B Z -C X -C X -B Z -C Z -A X -A Y -A X -C Y -A Y -B Y -A X -A X -C X -C X -B Z -A Y -B Z -C Z -A X -A Y -A X -C X -A X -C Z -B Y -C Z -A X -B Z -C Z -C Z -A X -A X -B Z -B Z -B Z -A X -C X -A X -A X -C Y -C Y -C X -C X -A X -A Y -B Y -C Z -C Z -B Y -C X -C Z -A Y -C X -C Z -C X -B Z -C Y -C Z -C X -C Y -C Z -B Z -C Z -B Z -A X -B Y -B Y -C Z -B Z -C X -C Z -C Z -C Z -B Y -B Z -C Z -B Y -A X -A X -C X -A X -C X -A X -B Z -A X -A X -A X -C Z -A Y -A X -C Z -C X -A X -C X -A X -B Z -C Z -C Z -C Z -A X -A X -C Z -A X -B Z -C X -C Z -C Y -B Z -A X -B Z -A X -A Z -B Y -B Z -B Z -B Z -A Y -C Z -A X -B Y -C X -B X -B Z -C X -B Y -C Z -A X -C X -B Z -A X -B Z -A X -A X -B Y -C Y -C X -C X -C Z -A X -C Z -A X -B Y -C X -C Y -B Y -B Y -A Y -C X -A Y -C Z -C Y -A X -C Z -C Z -B Z -A X -A X -A X -A X -B Z -C Z -C X -C X -C Z -A X -B Z -B Y -C Y -A Y -C X -B Z -A Y -B Z -C Z -B Z -C X -A X -B Z -A X -A Y -C Y -B Z -B Z -C X -C Z -C Z -C Z -A X -B Z -A Y -A X -C Y -A Y -B Z -A Y -C Z -A Y -A Y -C X -A X -B Z -A Y -B Z -C X -A X -B Y -B Z -C Z -C Z -B Z -A X -A X -B Y -C Z -C Y -B Z -C Z -A Y -A X -C X -C Z -A X -A X -A Z -C X -C X -B X -B Z -A Y -C X -A Y -C X -C Z -A Y -B Z -A X -B X -A Y -C X -C Y -A Y -C X -B Y -C Y -A X -B Z -A X -C Z -A X -A X -C Z -C Z -B X -C X -A Y -B Z -C Z -A X -A X -C Z -C Y -A X -C X -C Z -C Y -C X -C Y -C X -C Z -C Z -B Z -A X -A Y -B Z -A X -B Z -C X -B Y -A X -A X -A X -A X -B Z -C Z -B Z -B Y -C Z -C X -C Z -C X -B Z -C Z -A X -C Z -C Z -A Y -C X -A X -B Z -A X -B Z -B Y -A X -A X -A X -A Y -C Z -A X -B Y -A Y -B Y -C Y -A X -A X -C Y -A X -C Z -B Z -C X -C Z -A X -B Z -C Z -B Z -B Z -B Z -C X -C Z -A X -A Y -C X -C Z -B Z -B Y -C Z -B Y -B Z -C Z -A Y -B Z -C X -C Y -A X -B Y -A X -C Z -C X -C Z -A X -C X -B Z -B X -C Z -B Z -A Y -A X -A Y -C Z -C Y -A X -B X -A Z -C Y -C X -C Y -C X -C Y -B Z -C X -B Y -C Z -C Y -B Z -A Y -B Y -C Z -C X -B Z -A Y -C Z -C Z -C Z -C Y -C X -C X -B Y -C Z -A Y -C Z -C X -B Y -C X -B Z -B Z -B Z -B Z -C Y -C Z -C X -B X -C Z -C Z -C Z -C X -B Y -B Z -C X -A X -C Y -B X -C X -C X -C Z -A X -A X -B Z -B Z -A X -C Z -A X -A Y -C X -B X -C Y -C Y -A X -A X -C Z -C Z -B Y -B Y -B Z -C X -A X -A Z -C Z -B Y -C Y -C X -C Y -B Z -C X -A X -A X -C Z -C Y -B X -C Z -B Z -A X -C X -A Y -C Y -C Z -B Z -C Z -A X -C Y -B Z -C Y -B X -C Z -C Z -A X -A X -C X -C Z -C X -C Y -C Z -A Y -C X -C Z -B Y -B Y -C Z -A X -C Y -A X -C X -C X -B Y -C Z -C Z -A X -A Y -C Z -B Z -C Y -A X -A X -C Z -C Z -A X -C Z -C Z -B Z -B Z -A X -A Y -A X -C Z -C X -A X -B X -C Z -C Z -B Y -A X -B Z -C X -C Z -C Z -C Z -C X -A Y -A X -A Y -A X -A Y -C Z -C Z -B Z -B Y -A X -B Z -C Z -C X -C Y -C Z -A X -C Y -B Y -B Z -C Z -B Y -C X -C Z -B Y -B Z -B Y -C X -C Z -C X -C Z -B Y -B Z -C X -A X -A Y -B Z -B Y -A X -A X -C Z -A X -A X -C X -A X -C Z -C X -A X -B X -A Y -C X -A X -C Y -A X -C Z -A X -A X -C Z -A X -A X -C Z -A X -B Y -B Z -A X -C X -A X -C X -B Z -C Y -A Y -C Z -B Z -A X -C X -A X -B Y -C X -B Y -B Z -A X -B Z -C X -B Z -A X -A X -C X -A X -C X -A Y -C Z -A X -B Y -B Z -C Z -C Z -A X -C Y -B Z -C X -B Z -B Z -C Z -A X -C X -C X -A Y -A X -C Z -B Z -A X -B X -A X -B Z -B Z -C Z -B Y -C Z -A X -C Z -C Z -C Z -C X -A X -A X -C Y -B Y -C Z -B Y -A X -B Z -A Y -C Y -B Y -C Z -C X -C X -A X -B Y -A X -A X -C Z -C X -C Y -A X -A X -A X -C X -B Z -B Y -A X -B Y -C X -C Z -B Z -A X -C X -C Z -B Y -A X -C Z -B Z -B Z -A X -B Y -A X -B Y -C Z -C Z -B Z -C Z -C Y -A X -B Z -C Z -A Y -C Z -B Z -B Z -C Z -B Y -C Z -C Z -B Z -A Y -C X -C Y -B Z -C X -C Z -A X -A X -C Y -A Z -C Z -C X -B Z -B Z -C Y -A X -A Y -C Z -A X -A X -B Z -A X -C X -C X -B X -B X -A Z -B Y -A X -A Y -C Z -A X -A X -B Z -B Z -C Y -A X -C Y -C Z -A Y -C Y -B X -C X -A X -B Z -A X -A X -A X -A X -A X -B X -A X -C Z -B Z -B Z -B X -A X -C Z -B Z -C Z -C Z -C Y -A X -C Y -C Y -C Z -A Y -C Z -A X -C X -C Z -A X -A Y -C Z -C X -A X -C X -B Y -C Z -B Z -A X -C Y -B Z -B Y -A X -C Z -A X -B Z -C Z -C Y -C Z -A X -A X -B Z -B Y -A X -C X -C Y -B X -C Z -A Y -C X -B Y -B Z -A Y -C Y -C Z -C Z -C X -A X -A X -C X -C X -C Z -C X -C X -B X -B Z -B Z -C X -C Z -C X -A X -A X -A X -C Z -C Y -B Z -C X -C X -A X -C X -C Y -A X -B Y -A X -C Z -C Z -B Z -A X -A X -A X -B Z -C X -A X -B Y -B Z -C X -B Y -C X -B Y -C Z -B X -A X -A X -B Z -A X -A X -A X -B Z -A X -C Z -C X -C Z -A X -C Y -C Y -C Z -C Z -C Z -A X -C Z -C X -C Z -C Z -A X -B Z -C X -C Y -B X -B Z -B Z -A X -C Y -B Y -C Z -B Z -C Z -C X -A Z -C Z -B X -C X -C Z -C Z -C X -C Z -C Z -A X -B Z -C Z -C X -A X -B Z -C Y -C Y -B Y -C X -A X -A X -C Z -B Z -C X -C X -C X -B Y -C Z -B X -C X -C Z -A X -A X -C Z -C Z -C X -C X -C Z -A X -C Z -C X -C Z -C Z -A X -C Z -A X -A X -A X -B Z -A X -B Z -C Z -C Z -A X -C Z -C Z -B Z -C Z -A Y -C X -A X -A X -C X -A X -C X -C X -A Y -B Y -C Z -B Z -C X -B Y -C Y -C X -C Z -A X -C Y -B Z -B Y -A X -B Y -B Y -A X -C X -C X -A X -A Y -C Y -B Z -A X -B Z -A Y -B Y -C Z -C Z -C Z -A Y -B Y -B Y -C Z -B Z -C Z -A X -C Y -A X -B Y -B Z -C X -C Y -A X -B Z -B Z -A X -B Z -C Y -A X -C X -C Z -C Z -A X -C Y -A X -C X -C X -B Z -B Y -A X -C Y -B Z -B Y -A X -C Z -A X -B Y -A X -A X -A X -C X -A X -C Z -B Z -C Z -A X -A X -B Y -C X -C Y -C Z -A X -C Z -B Z -A X -B Z -A X -B Y -B Z -C Z -C Z -C Y -C X -A X -C Z -A Y -A X -B Z -B Y -A X -C X -C Z -B Z -A X -C Z -C X -C Y -A X -A X -C Z -A X -A X -C X -C X -A X -C X -C Z -A X -A X -C Y -A Y -B Z -C X -C X -B Y -B Z -A X -B Z -C Z -C Z -A Y -C Y -C Z -A X -C Z -A X -C Y -C X -B X -B Z -A X -A X -B Z -A X -C X -C X -A Y -A X -A X -C Y -B Z -A X -B Y -C X -B Z -C Y -B Y -A X -C Z -B Y -B Z -A X -B Y -C X -C Z -A X -B Z -A X -C Y -C Z -A X -A X -C Y -C Y -C X -A Y -C Z -B Z -A X -A Y -C Z -C Z -C Z -C Z -B Y -A Y -A X -A X -C X -A X -B Y -C Z -B Z -A Y -C X -C X -A Y -A X -A X -C X -C Z -C X -A X -A Y -C X -C Z -C X -A X -A X -C Z -C X -A X -C X -C Z -A X -A X -C Z -B Y -A X -C Z -C Y -C Z -C Z -B X -B Z -B X -A X -C Z -B X -C Z -A X -C Z -A Y -A Z -B Z -C X -A X -A X -A X -A X -A X -C Z -A X -B X -A Y -A X -C X -A X -A Y -A Y -B Y -C X -A Y -A X -C Z -C Z -C Y -B Z -C X -C Z -A Y -C X -C Y -C X -A X -B Y -C Z -C Z -A X -C Z -B Z -B Z -C X -C X -A X -B Y -C X -C X -A X -C Z -B Y -C Y -C Z -A X -B Z -C Z -B Y -C X -A X -B Y -B Z -A X -C Y -B Z -C Z -C X -A X -C X -A X -B Y -C X -A X -C Y -B Z -B Z -B Z -C Y -A X -A X -A Y -C Z -B X -B Z -A X -A X -C X -A X -C X -A X -C X -A X -A X -A X -A Y -A Y -B Y -A X -B Y -A X -B Y -B Z -B Y -A Y -C Z -C Z -C Z -C Z -A X -C Z -C X -C Y -C Z -B Z -B Z -B Z -C Y -C Z -B Z -C X -A Y -A X -C X -C Y -A Y -B Y -C X -C X -B Y -C Z -A X -C X -C X -C X -C X -C X -C X -B Z -C Y -A X -A X -B Y -B Z -A X -C X -C Z -A X -B X -B Z -C Y -B Z -C Z -C Y -A X -C Z -B Y -C X -A X -A Y -A X -C X -A Y -A Y -C Z -B Z -C Z -C X -C Y -B Y -A X -C X -C Z -B Y -A X -B X -B Z -C Z -B Z -B Z -A X -A Y -A X -A X -B Z -C Z -A X -A Y -C Z -C Z -C Y -A X -B Z -C X -C X -A Y -A X -C X -C Y -C Z -C Y -C X -A X -B Z -C Y -B Z -C X -A X -A X -C X -C Z -C Y -C Y -A X -A Y -C Z -A Y -B Y -C Y -A Y -C Z -B Y -C X -A X -B Z -C Z -A X -A X -B Z -C X -B Z -C Z -C Z -A Y -A X -C X -A X -B Z -C X -A X -A X -B Y -A Z -B Z -C X -C Z -C X -C Z -C X -A X -C Z -B Y -C Y -C Z -A X -C Z -A X -A Z -A X -A X -C Z -A X -B Z -C X -B Z -A X -C X -A X -C X -C Z -B Z -A Y -C Y -C Z -C Z -C X -C Z -A X -A X -B Y -B Z -C Y -B Z -A Y -A X -A X -B Z -B X -A X -B Y -B Z -C X -A X -A X -C Z -B Y -C X -B Y -A Y -A Z -A X -B Y -C X -C Z -C Z -C Y -C Z -A X -B X -C X -A Y -A X -C Z -C Y -C X -B Z -A X -C X -C Z -A X -C Z -A X -C X -C X -A Y -C Z -A X -C X -C Z -C Y -A X -A Y -A Y -C Z -C X -A X -C Z -A Y -A Y -A X -B Z -C Z -B Y -C Z -B Y -C X -C Z -B Y -A X -A X -B Z -A X -C Z -A X -A X -B Y -A X -B Z -A Y -A X -A Y -C Z -B Z -A X -B X -B Y -B Z -A X -A Z -B Y -B Z -C X -B Z -A X -B Z -C Z -B Y -C X -A X -A Y -B Y -A Y -C X -C X -B Y -A Y -B Z -C Z -B Z -A Y -A X -B Z -B Z -A Y -C Z -C Z -B Z -C X -B Z -B Y -B Z -B Z -A X -A X -C X -C Z -B Z -A X -B Z -C Y -C Z -A Z -A X -A X -C Z -A X -C Z -C Z -C Z -B Z -A X -A Y -B X -A X -A X -A X -C Z -B X -B X -A X -C Z -A X -B X -A X -A X -B Z -A X -C Z -C Y -A X -B Z -A X -C Z -B Z -A X -A X -B Y -B Y -C Y -A X -B Z -C Y -A X -C Z -B Z -A X -C Z -B Z -C X -B X -B Z -C Z -A X -B Z -A X -A X -A X -A X -C Z -B Z -B Y -C Z -A X -C Z -A X -C X -C X -A X -B Y -C X -B Z -A Y -C Y -B Z -C Y -C X -A X -B Z -C X -B Y -A X -A Y -B Y -B Y -A X -C X -C Z -B Z -A Y -A X -B Y -C X -B Z -B X -C Y -B X -C X -B Y -C X -A X -C Z -B Z -B Y -B Y -A X -A X -A Z -B Z -B Z -C X -C Y -A Y -C Z -C X -A X -C Z -C X -B Z -A Y -B Z -C Z -B Z -B Z -C X -B Z -C X -C X -B Z -A X -B Y -B Z -A X -C X -A X -C Y -A X -C X -B X -C Z -C Y -C Z -B Z -C X -A X -A X -A Y -C Z -C Y -A Y -C Z -B Z -C Z -C Y -A X -A X -C X -C Z -C Z -A Z -C Z -A X -B Z -C X -C Z -A X -B Z -C X -A X -A Y -B Y -C X -A X -A X -C X -C Y -B Z -C X -A X -C X -B Z -B Y -A Y -C Z -A X -C Z -C Z -A X -C Y -B Z -A Y -B Y -B Y -A X -A X -C X -C X -B Y -C Z -C Z -C Z -C X -C Y -C Z -B Z -C Z -A Y -C Z -A X -B Z -B Y -B Z -A X -A X -A X -A X -C X -C Z -B Z -C X -B Z -C Z -A X -C X -C Z -B Y -A X -C X -A X -B Z -B Z -A X -A X -B Y -C Y -C Y -C X -A X -B Z -C Y -B Z -A Y -B Y -B Y -A X -B Z -A X -C X -C Z -A X -B Z -A Y -C Y -B Z -C Z -C Y -A X -C Y -A X -C X -B Z -C X -A X -C Z -A X -B Y -B Z -C X -C Y -B X -A X -B Z -A X -B Y -C X -C X -C Y -C Y -C X -B Y -C Z -C X -B Z -B Y -C X -A Y -C Z -C Z -C X -B X -B Y -A X -A X -C Z -C X -C Y -A X -C Y -A Y -C Z -C X -A X -C Z -C X -A X -B X -C X -C X -C X -B Y -B Z -C X -C Z -A Y -B Y -C X -C X -A X -B Z -C Z -A X -C Y -C Z -A Y -B Z -C X -C Z -A X -C Z -B Z -B Y -B Z -A X -C X -A Y -C X -C Z -B Y -C Y -C Z -C Z -A X -A X -A X -C Z -B Y -C Z -A X -A X -B Z -B Y -B Z -C Z -B Z -A Y -C Y -C Z -B Y -A X -A X -C Z -B Y -C Z -A X -C X -B Y -A Y -B Z -A X -A X -A X -B Y -A X -C Z -B Y -C Z -B Y -C Z -C X -C Y -C X -A X -A X -A X -C Z -C X -C X -B Y -A Y -B Z -B X -C Z -B Y -A X -C Y -B Z -C X -A X -A X -A X -A X -C X -B Y -A X -A X -B Y -A X -B Z -C Z -A X -A X -A X -A X -B Z -A X -C Z -C X -C Y -B Z -C Z -A X -C Y -C Z -A X -A X -C X -B Z -C X -B Z -C Z -A X -A X -A Y -B Y -C Z -B Y -A X -C X -C Z -C Z -C X -A X -A X -C Z -A X -A Y -A X -A X -C Z -C X -C X -C Z -C X -A X -C Z -C Z -B Z -A Y -A Y -B Y -A X -A X -C X -C X -A X -A X -C X -C X -B Y -C Z -A X -B Y -A X -A X -A X -C X -C Y -B Z -B Y -B Z -C Z -C Z -C X -C Z -A X -B Z -A Y -C Z -B Z -A X -C Y -B Z -C Z -C Y -A X -B Y -C Z -A X -A X -A X -C Z -C Z -C X -A Y -C X -B Z -B Y -A X -C X -C X -A Y -A Y -A X -B X -B Z -B Y -B Y -A X -C Y -A X -C Z -C X -C X -C Z -B Z -B Z -C Y -C X -B Z -C Z -A Y -C Y -A X -B Z -A X -C Y -B Z -B Y -C Z -A X -A X -C Z -B Z -B Z -C Z -C Y -C Z -C Z -C X -A Y -A Y -B Z -C Z -B Y -C X -C X -A Z -C Z -A X -A X -C X -A Y -C X -A X -A X -A X -C Y -A X -B Y -A X -B Y -A X -A X -A Y -C X -C Z -A X -C X -B Y -B Z -B Z -A Y -C Z -C X -C X -B Z -B Z -C X -B Y -A X -B Y -A X -A X -C Y -B X -C X -A Z -A Z -A X -C Z -C Y -C Z -C Y diff --git a/2022/day2/input_test.txt b/2022/day2/input_test.txt deleted file mode 100644 index db60e36..0000000 --- a/2022/day2/input_test.txt +++ /dev/null @@ -1,3 +0,0 @@ -A Y -B X -C Z diff --git a/2022/day3/day3.py b/2022/day3/day3.py deleted file mode 100755 index 2e08c21..0000000 --- a/2022/day3/day3.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python3 - -# filename = "input_test.txt" -filename = "input.txt" -res1 = 0 -with open(filename) as f: - for line in f: - line = line.strip() - middle = int(len(line)/2) - first = line[:middle] - last = line[middle:] - - print(first) - print(last) - d = dict() - for c in first: - d[c] = True - - for c in last: - if c in d: - print(c) - if 'a' <= c <= 'z': - add = ord(c) - ord('a') + 1 - print(add) - res1 += add - elif 'A' <= c <= 'Z': - add = ord(c) - ord('A') + 27 - print(add) - res1 += add - break - -filename = "input_test.txt" -# filename = "input.txt" -res2 = 0 -with open(filename) as f: - for line in f: - first = line.strip() - second = next(f).strip() - third = next(f).strip() - print(first) - print(second) - print(third) - - s1 = set() - for c in first: - s1.add(c) - - s2 = set() - for c in second: - s2.add(c) - - s3 = set() - for c in third: - s3.add(c) - - si = s1.intersection(s2) - sii = si.intersection(s3) - print(sii) - - c = list(sii)[0] - if 'a' <= c <= 'z': - add = ord(c) - ord('a') + 1 - print(add) - res2 += add - elif 'A' <= c <= 'Z': - add = ord(c) - ord('A') + 27 - print(add) - res2 += add - -print(res1) -print(res2) - diff --git a/2022/day3/input.txt b/2022/day3/input.txt deleted file mode 100644 index adf173d..0000000 --- a/2022/day3/input.txt +++ /dev/null @@ -1,300 +0,0 @@ -RCMRQjLLWGTjnlnZwwnZJRZH -qnvfhpSbvSppNddNdSqbbmmdPrwttJVrVPDVrJtHtwPZhrPJ -BFpFzSSqSFFSvQsnWgCMjTLzng -DbWVcVRRdlLffvtqjTWNgQ -mJJMpsmrMrJSHJpsHrFHvBvgHvqfNvzffgTvfj -mMhPjmjmFPJhMSGGcDRlwRdcLGPc -qFcbmWFJqqWpRJcQWpqsQQQwSPCPrHRHCPdNZtSrSHwrNZ -jGMjGLhhhgTvghgtGVjnNCrPVwZSZffSNSwHZZdH -DvzDlvvhnjlMlglglGGhDLpqqcJWWtsmszpWbBBBmQmb -SPLPHQbJSbPsvTLmfDvVDctvWhcDlD -jdRRzzGgJqwrpMRMgdjlcVcWqfWWlfDlmmlWhB -rwgRGdpGprNNLQLsbZJPsn -GZhTVLztHrSzrRBz -MJWjMvsfSCLSnrJn -MjglcgWMdccvZGFtTDchLLLh -rgDHBgBjRgRTgwzwthBnQwmBtB -MsMpSfMsTGTFFLdFFFMFsnNmthNnzhthtwmWnznz -pZMpJdvJMGRHVJJTVHjb -TQVqZVBcBBdBfbpN -zvzrtCshrntCHslPMMMFpZHbNSpb -hLWhGLttsvLvrrWvhzVmQgwJZTRcggTjGcgT -SqRGLHtSbtNTbhjFTjDDpF -WwgJgmdmMdwPDVQQBBhSBFwV -JMPlmlSldWZmRqtLsRGRtvls -mZvmvPNmlNJPJzzmgNvNgdqqdBSpfHBqSsHqHfwpsffq -nhDQDrwLrVVnqfGnsBGBGGsH -VjCDMhbDjLjtFhtLhLhQjNZcZPwWWcczmvglgJJN -wwqnwZGGZqqMpMprpZqwGlLDtNDffdBdNVBmNGBN -TSTchTFbRLfLmVhNDm -SCLRvJQvRFTSRjqMqPZrZnrzZzjp -cJfqGjgGJcsgsPnghgBm -FHHbQQHLWLbPQThqQQRnZs -lLLMSCvrlFMwlSlFcNwqDVVpJcfjzVDf -cRdRDhsDFzPztwJdGP -CVqpCqCgSNfCSQBpjtBwtlBBHLlmGjGG -qfQfCVQfgQnVNpQCMqfcrFrwWDhrDnsvcRDsbc -nFWWzqWZQSqnJzNJzslJVsdV -vBBvsLvbBmBmRlGTNJJvRRTD -tBbpmmPwCmHpMHHMrPCCcSnZSgcFcZgWFscSfgth -LLssTJrqrpvrvvpJvdjggMlgzVgVggPlFPqz -HwZwCZfHNtbMzjgVnFPC -RSttfRwZDtBcZwQMQdrQsdTBQQmW -lJnNhMJqljlNhSrdWlGGGQHwwH -vbTpbCsTFCTmbSmcRfVCfRpwcPdwWQQrdwHwBHrPdwrLLB -sVTmDfmCTVmJjgSzzntDtt -DQtMjZHZHvMbwwTSpqLtpJ -FzVFlsNdVczWPzWcslVfSLqLsqJpSwwsJswLrf -dNFFWcmzWFGLWcdcFgvZvvRHQvjMHDMBGD -MVPTmPvbMgrTmmmmMRMvPvBwFGhhDCdFFwLCLdJhDGFRhG -fqqWfpZWzWsDwhwdhwqGLD -ZWSSftStnnplcQLSbVMBvTbrMlbrBvvl -FSsHDmtFLbbFbLGg -vrvzTzWzzzvppzSzTMnfTggjVgbgjbLjgPPnbGbVGL -pdMwrBpfwfSMTTWdMTpBDCBtmsmltslcBDCshDHs -RgbmfGtmRVgLLSVSnSrWWSHhnh -ccTvlvNppsFnbFnhnWnPHJ -pqNjDBjNNjvpZfmtjbCLbCmb -qsSVpSVfWqgNrVtWptpmSfqbPQljbHPHlDnljRSlwSnwQn -dcGBrMFMdLTGGdlwDwMRHwwMbjHP -CFBvhFhTLFCGvFchChBdBTJtsNpWqfVgtszprmVWNqNgvV -sjsTgNSNqSjgMmVPmmmrpH -RftCcWddRCZfPtCfcQZdcZDcrBllBFpVHprHWlHHpHJJmlFp -thPZRtLcDRdDCTTsqbnwjhvNjq -TQPtgfgdPcdSQhjwHhHBLS -RrqCqVVbJmVRJmsrzmJpWljlSHLSBwSSRWllWv -CVrDNbHrJHVMCbrDJsdFdFcPFZngMfFdTPfP -NNlZgndqmGVGGVZNWQmWmbhbbhpbbhtCbhtgCpCtMF -THfLPTzwJTJrvHRwwsbFbhfbMCpphVtBbB -RjrvzHLzPDvLzPHrTJVrwPndZQNlDZGndZWDdNNcmlQq -tjDsjDGtTjVVbQVCggvrbg -qrWWRBllRFrdlSMCdbSJCP -cZcncRnhphpZWRNtrmsrGpHffmwH -qpRjdcqTcMbbMRTwtnplnwnhPzhBhw -FSFLvNrsPNrsGSLsrFSGfnwBQwZnZwhQQLwwQhnn -sWNVmVmCFNWGsCrrjRTmMjRjPRqgJqJg -sVCnzVpmFpVSnNFCmnmzwRFDWDdMllDccMdwDMjWjWlWjg -BJbPJGGGHPZqZQbpMlWWMWlBljjjgDjh -tGQPpZtfTPpqrHsVLSzmRNLtSFsN -WCDlBWWlvMFWlQWpmSZdZnNmGfJZFZ -LqjTjgtjPcHTTJgLThztcLTLnHnmdSpZdpdffnmZSppfGpSn -PtzqzjtqJgggzhqqccqhrQMsMvMwrCwMlBvMwvvsvs -NMsJfsHTMVbjnLnVsC -htWllhmZcWDWBwhZPcmpVRjnVMRLCCjLFpCwRb -PmZMrBtcPmZWhzDWBtMmJQdddHfQGNSqHqQGGTgr -NmfnnsPlHnGqnlsNNmRPltRLvrhvrSGJSJjvFFFSSFJLhb -PzQZccVPVwgPjrJSJjhFFpQr -TdwBgdTVwzdwzlmNfRqPmqqTql -BVLLBPmPmWBlMlLJnJlBlFQVgdRDdRZRZHpZjQzdRdZQdzQZ -trGTsfbTTgHZptzSZW -fsfTNcCqqNhhVhVFVhVBWLLB -LJwgJNfbCvwCJCwBCCNhhHmGHWWSMWmWmbMmTmmGdS -lzRnnltsstZzzRTfHtHWHGWftfHW -ZFFzVFqzqlFcZscZpRZsNphjhjvjfgJhQgQvwvhC -HHzcFNcHFjhjZjlrghLL -pMZJptpZWCmpttRMCWnnDnBGGDLhlLQrhl -MJsMCTZTTpTJRmMCJzfNsNcfNHqzvvfcww -ZDtllsDlVsrQBqQqRfWl -wvJgpPhhscgvpJFNrRjRrWRjqrRjdjRv -zpsNzCsNCJCCPPHSLzznMnDSLGLM -rfrJjFWrwjpnJjjjfrjJJnFVTgTggRWRRRPPLQgCgQcPPT -sSNbSvqmsSZDZZBtNTTPGgMLMRVcgPCMRb -zZDZzNNSmrfpjFCjzj -dbbNJPBbbrFqNqttqrGbqDcmDQRmFmwcwSnQSDcpwS -ZMMTsHjzLlLcnSVwpRRQ -hZTWjWvTZzTTWhszfwbJhrgJqtBbJGdqNPqt -rrqgHrgtcHJRRjWZlRvnnWBn -QbhVmdFppwbdjnMvlnBwMWZP -TpFDdVTFTDfhHfJcSJSzGZGf -sqNTNZHsHjjFBBwJMMNMcCJD -WGLQPjfWfQWPWmtLSRRRLwBJDbtCCJJCbbwCMBbMBc -RnPdLQfPLRdndGGRvfjlgdrTTgTsrgTrZFzF -BfHbjVVqSBFfMSlCLCDrGSQssvlr -tTpnnzpcPnwzhcnJTDtTPRprGlRGGGCWlQsWvrlvrQGQrC -DPwhghDTpPVHqqdgZbZq -ZzPqfGPtRtqfqPbqfGgGZbrhMjmjBCpHpHNCmHtHjmBHnj -QJwllvFWwDvnwCBBzjwwpC -ccJLVQzWFJvVJlVbgrZZLZLRRPSgdr -rBGbLbnTfnZrQbTnHldqsMmHsqlsWfMd -JcJjCCPzPtjCNHdlGGMlll -jjgpRRvcGbwpThVppT -ttDfjtqfjtpTWWwfTbtlWccNGRSZNGPGhZGhGhcwRh -LbCrHdvzLSSHmSRNmc -JCsBvrvBLzFQbbvlVVnpQpDtWlDqfq -vvdvJBfvdTvRBflBJPNmmffmgPCMwDgsss -rFjqLnMcnqrrtMLtjNgCPCsNzzgsPCGFNs -VqLqnLVZqjMZqWnrVtWlZJJSvHvBdRSvBdRvvJ -zZBDzgQQZLlcglzjrCrCMFjGZbMsHm -PnnJVRfttTtwVnnVFGHVsjCFCjrsMM -wPRpRpRnNTpPNlBdQQDdgDNMhN -bNQpFpnwgtDHpbnhWtffmfmhvhhfsZ -LcdLdwCLPPSVSqqwZGhWdJhGJZhlGlsm -TBwSLPSPVRSVqSVqVrcnpMDDngMgnQpbRQFDNH -vPSvBJZSSdJgpJJZBDGDGrdqGdllGrGDrh -HMtsltFlRVVFtlscRjjMcsWwWChWmrnwDWGwChmjGCWq -MQHNlTVHNVHpbbpbTvvBvf -VsbPMwhbWhzdpzNNggnBcTBWNngQ -RmtZZFZqSjqVHmGQNcBHNLGLGHQH -JjRClqCjZlDZmqSqljFZZqRCvsvPfshhMdwsDwbVwzMzhffb -bfGtRgfDtVmsMzTbmz -LjGZwQLLdjFdHLNMhmzBzMNHNmzN -wjQLCFvnnQGdZLGWSjdqWDfPlrRpqRDDRqrpPr -pqnBZqjCNCqQqmllpHGMGdTfML -PsFgrRvSPsWTwWWQwGHLHW -SrvgsFbrrPJJFsrFPtFSCChBDQjqCqtNhDqhCqNC -RJZRWZWMWZPZffRCPWMdRdfQQQjJzHQsssjrSQFVschVHr -NgpnDgvGTNTVFHFFjVFF -jntvgljpGvlnbLtLbBvnLRPlCCwwCfRqMCCqqqddqw -PFBMVDSVPHMTThtMtSBMMVNbQprHbNRgNRRgLnvpnjnN -scGcrcwlswdGlcqvbQgnnpQnqLjnpp -ffwswWzcmlcWWsmcZhrDFrZMFZBMFzhM -LMdZGqdRSSZmCZMRfQjnggvlvggRcznz -tjjFhBrtpthpslcvvlcQzFnFvQ -jrhbjtpJtbZqCLdWLq -HBGBfBttZzbGbljPdpFddFqRmqRzRN -JDWghDDSDqmmDDpc -CLvgMvChCvLphCTSShhMhQsBbfTfsGsrBfjfrljrZZff -RgHgDqDzqQqgcdHqcZGTNlGffGBDGZBTGZ -LFLPWsmvrbwhwwswrTlTTCBNGFfGlNJZNS -vhrLnvhNmWvMsrvwqMdRcptQtztcjptz -sLMLsThhjgqLlsnsLgTLtMFcRbcPcJSwJbbSbtSWScSt -fvrjjDjvNprdPwwJCCSrWPFP -vfZdGzVzfvGGVGpBjnnMglTsgZlqsMlM -TCVMfCfBnHHfLLPFWb -GgQlGJzNzbzHcHHLlcPLHL -tQbNQGgRZZCVtVMZ -QFFMzwjwngsvsBjGGJWbBbBWbB -QdmVDmVDWRPWVPVV -QHtHSdDpLQCCSHrtqrdrttDfLgvnFvFghNszzwgngFwsNF -RzzTNpSRBzSBVpSRlHNSHBSSGPcLNGtjhPPcbcGhPPhcrnct -CCmmCwwdfFJqDmdwsddhsmvdcMbLfcftttbPnjMPbcjPMPbP -mdZQmvssFdqsFZvsZQmvDvmWzgQBWTRzTzHlppWRglHBQh -VWmnfQWzWWnHWMfmmMVNMfWjtBtBNSNSrlStlpjJBBlgBS -cZZvbwsZsbbZvvscCRdFTTTQrBStdBJgSdhjgBjBjJjpJJ -wCFTCbZbFwwCTvFTwsPGccMzMDWVWfzLGmqHnnDHGLQL -sNQQHbbhdlpdrQllqpsqSpGjZDZGgDnVcnjjnnDZ -WWRLGFvJBJPvzzWjnTncDVZTTPgDff -FLRLGRFRJLBWJmJzMRLCvldrMrbbltdhQQlNqtMbsb -HZllwlZSlSZwhvmQjcZhTqcT -sPzzdgpszpzsBdvvMccvcqPThjhM -JDdsDspLzsdzBgVdBGBzCLlwbbwWSnlnnWffHwJcNlHw -nzCTCnpqJqfCnvvjZjWjPcZrmcmZfW -GNdwgVjwRdRglMrPWLPWZWcNWW -dVblgtRwQgSGVBldbQBbBRJnQJTsJHTqnzzJFpjvHnnn -dqpQQrdqQpLfqcGSdggQdgRMmwHBMMBVNRNDFFBDBgNt -vTzsnZCnlCnshbPlvZJbBzVmmVRDNwtHFBwMDVBR -lJCshjTJbVqfVdjjjG -WlLCJlHLcZcJWcWZJnLHnPqlFtSthTnFNThVtNhVhvNVzVtF -QfbgRsspfDRsgfjqqRRpDbSNSTFzBbTbhttVBhVNBzzT -fwgfRdpdfQDqgPHHZJZCcdGddH -sbrbmVmfddzJntZZtwtMMf -PvhwPRlvvWhFvSRhpFMMJGMFppnBTBGJ -RPlCCLDPDClwHbrdzsdNLzgs -HZgqtgbqRZvzwzCh -BFqmGfrNLQfhzJWBhRJwJR -LFqFQjrcrcqFNMmMdHggntDPMnsDbn -NmWmPblGnnTTNlFGPmNWfwdchdlHdBdwcfCfZppZ -rzqzRjgVrJrzzcFdqdCBFBhZhH -VDRsRMjRJJrQsJPTGFNvsbnsnLGm -nrbrBLTffjNRzGQSJHJQGT -tcZqMcppCmHRQPGGCG -pMDcZhpgcpFDfrwNDDrLVjGj -LWlmlmWqvrBMWWBlmjLThBrfPJZfZZCwPCJJwPCTcggCsd -pSbRHbzpHDVFRQRfPdfnZswgcJcppp -SzRNGbzSWNPLWqLv -vqslblpspsvqBFSqcrrZZDdTfFPHccrf -GWRhWmjwhRcQdCDrPjDP -mcWLVnnWJgGRzVSsVSpSSptNpMvb -wHTPfdTvHlPHGpdvvTddGfcJLLWWwWWcCWrqrVMWCVLL -zhsSNZhnshNSnvZmvsCWWSLrVMcrSCLWJcrq -snDnshmNsjnTdHPfDGvdDT -CfrnFFMnnsRNrNCwFCrdssgqgqvVZvZqlTWBNWZqlJBW -htDhDLhwPWWBqTghgB -DPLPzHDtSPStjLGLtzSMwbdMdnCHrRdCFsmfnR -nBNWCvJmVPNnCPNDJWbtmSwqTttcQsSqtqTjQQ -pMflzLlffRRMRdFlflpLddGdsTjwHqzcvwTqtsStQQjtwwsQ -ZhGlphlpvvLLfFGvMLhfrfWNJNNPVPbnPhnDgDbDDNbJ -ZCpCmVlZvlpBBwvvMCrJhrfhMfjjWMSG -qhstFzFFqzHGzNfSMJSGzM -QnHRPRgRQPtPhtnDsqsbDQPBlTcpBwmVmTvbwdwBTVZVpl -PHmqHdddqBWMmTvMvTGMBWPdwhssnnHlhgsNwhwNHQzwrswh -cSbVcDLtbfLSFzhlhJswgtrsww -bSLlFLFFLDZVLpZVjFLdPMdBBqGGPmmqWGdGjM -FQCnQwFRbnrSfgQgwFRCnswmPLpMppPdMMllpLMptMLldPSZ -cJhhJcJVBJjhfHDvJqThvVDcpdGGqdZGdlltpqWdMqpdGWtG -HhzTjJBzJTvNJHvzvvNBzBFnFCNCbCwrbnRbgRwfwQsg -jRzDgbDDQDgVqqDGsjttNdwqNJZNwNdTWrpB -MHvvvlSHFllMhhMrpWBJtlWdpJrTwZ -mFcFFHmCmtcvfvFFHHLDGnRVzjDgnmgmnzGgGg -JJhDpDdmsJJdgmhrpPjGjFLPPSNpjL -WbznbRGnPfrfRSrN -WqGnnVGVMGHtWTCgJvZHggBggZCg -wlrPQtZQvwrzlvNfZLMZBjbbqjqLbSBjTg -PGJDVdsdhsPVPjbTcLcGLgjqbM -VPDRHWRdsRQvpfmmlw -pvTZTSpTZvGGphNvvbDpdrMqrjlWdPqqjWdldNrd -gmmJmsQfJgcRQJQJJncVQjMWllSnqljqBlPPjPHHHH -QVJQRVcwmJcchwpSZLwGbSZZ -zjrDMWcjDzQjDlWrnqqRBRNhBJRBhBJqnf -TTGPPdgGLwdHGwGPTgLbbvhHtRRNRRSfchqRvSqHRJ -TZTccPpdZwPQjllsspjVzD -jHLHhHFRjhcblDRRWbWTdtppLTntTnMmGLMvTp -BBQBgBBCrrgqJqTtMZMpngdtpvpG -QJJJQrsVsQQfQVPCNqsNSjHdhhdRHDNHFHFclh -RbCLnvdtnLRLRbmLPpHdQCvmNJpJSZSJlgDzglGlzcclcDGD -qBBwMjfsFMjsMbfWbwjlzDZlcWclJczgNDGNDl -wqjhrwwhhCvbQPrRnC -vpWDDDWZQQNGllwHlwWVGj -LCPdqdcdtsvdsCtsddvmVrVjjrBwHlmswmBnmw -fLfvSgvMfdCPqzZNThfNNpTJJQ -CVVVLbNVmGNQbGbGHHbHbvdwgQlwJDTFgJQdDZDJFD -ssWBsBWrjSzWrPtBjnSCTwvFZlDjwZDdgwTDwggv -nntPBqBrPsBfnCRCBWzCVcGVHMLNcbHLNmHqGphp -sbbwwzdsbqQQbQnnNbPNGbznHHRdLTggMVHFVvRZTRVRHMZF -mWffDWfflBpfmcWjWrrJVvgRLlMZVVhMFFTlHhMM -rJJCctmjcfvzsqsqbtbqPP -HGWjHWzVctQVcJVtjvRsvLTddqDDDsjRLg -bbMnlNChZQLZhdDs -SMMMMMMNmMllSlrmCczGcVzBcGWFBQGcrt -VwQlqcLfdLGqdqDjjgZrjZBdttjd -zSPPPJzJGjJjZrCBDt -WMTMsTWsccsvGGwH -hZvbQrjTTZjZcjWNrjnQrcTRpGMqcRfRRGzHfHfpfRMqRz -mDJlFmwCVVwbCVbPBRLMMLpRLwRLHqpR -gsCmgJsPDCtCVlvbhgQjhgQbnQbd -fSgbhhGPGJGhRDmlhhHcHDBH -LsMwQWFswsQMsQMvjslcBcDldBTWfDcHRRdl -ZpVFwLQwVLQvCVsMjrJbbCNPbzSJtPbPPf -VDzWMCpfCcCRDzqDzqNnvLZnfntHQnPPLQlt -sJmdbTBdmmGhFhhbJNNQlJnQlQLHPZNn -sdwmwsdrmMRpDRMLcw -JpWmSWpCnCbJBZHZVldbdfZf -rgdrgNdrjgNPrMjwTssrPdfDZqsVfQHDFlQDDHQVsZfB -TRPdNNLgjNwrRTrJpppzCmzmCLSnvS -QbtQJHQmbmfmBRvbQRzBvldqcFljsGcFdGdvsqqGls -ChCPWhDhWZWJVnZpCNChhVDcMcDdcdgGscjgFjGFlsjjGq -WZNTWNhNZfJJbTJTmR -CHGCHFcZvCrchrZrhsVtsBQjMstfZMMBgg -NNqwDLmDjJgQBmVQ -wdWLLTgWRTWcCcbrHCHhGW -bTZZvNjNjLgTCHcWhccfhWJdhvnc -mnFFmPGSwRPShzVPPWPdhhzr -FRtBFGBMFQFttRwtZgTjCTnQNbNLjTCH -bJSqrSpDJbSNbFjSFCfPWGcwGWPrcTCfwr -tRtLhDsvhQZlHRhRtQQnCnCcdwCPwTwdGcGP -HsHvsmBZvmvsmBhHvLssVqDSNgFMDzgbbDVJzbpMVq -nSSDHRRRQRBCLCQC -qGmfPzGmGlrrrpfrqlzrJtLvBlhQbSCvbtCtlFhLFC -zzpmqqJJVVfJfPfMpfdHNndsNwDSMSDDNcsc -CscQsVMhCsMsMHhhVthtwmgZNRqzWLBRLRLmBWmZWBND -JQJdddrjrLqBgDBq -QbFlTffpMbMnsPCh -gDdbVbVDddDfVfWQfBRLQZsZLRQQ -FCCTrGCMStwGHTtTWLQhLZrlRssRhRhp -FSHqtFTmFwmCsSwGTHtMTSdjjcdnVddgzmbVmjmndbbD -JtBBMcLWLdfFLhMttcWWhfWLrTRGFsbwTmRGwmwbbCTGGsbD -PzQpSQQQvzVvpzHqjvNvQSvGRmmTDVRDmsGsRGsrcDcDGC -cQPHSPvPvZHqcZjzpZjnZNtWlLdtldJWfnfhlJJtLdMg -nPPssTBnMJPdtHPVHtRhpv -bSSgGFWDgWwDFFlmWlcShqdpRqpVcHvvnqpvpRHd -bGFnGljgSsjBCTBszz diff --git a/2022/day3/input_test.txt b/2022/day3/input_test.txt deleted file mode 100644 index f17e726..0000000 --- a/2022/day3/input_test.txt +++ /dev/null @@ -1,6 +0,0 @@ -vJrwpWtwJgWrhcsFMMfFFhFp -jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL -PmmdzqPrVvPwwTWBwg -wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn -ttgJtRGJQctTZtZT -CrZsJsPPZsGzwwsLwLmpwMDw diff --git a/2022/day4/asd.py b/2022/day4/asd.py deleted file mode 100755 index 7989e3e..0000000 --- a/2022/day4/asd.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python3 - -# filename = "ref.txt" -filename = "pzl.txt" -res1 = 0 -res2 = 0 -with open(filename) as f: - for line in f: - line = line.strip() - prvi,drugi = line.split(',') - ps, pe = [int(i) for i in prvi.split('-')] - ds, de = [int(i) for i in drugi.split('-')] - - if ps <= ds and pe >= de: - res1 += 1 - elif ps >= ds and pe <= de: - res1 += 1 - - if ds <= pe <= de: - res2 += 1 - elif ps <= de <= pe: - res2 += 1 - - print(res1) - print(res2) - diff --git a/2022/day4/oneline.py b/2022/day4/oneline.py deleted file mode 100755 index 7311461..0000000 --- a/2022/day4/oneline.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env python3 - -import numpy as np -from functools import reduce - -# filename = "ref.txt" -filename = "pzl.txt" -res1 = 0 -res2 = 0 - -res1 = sum([1 for (ps,pe),(ds,de) in [[[int(n) for n in two.split('-')] for two in line.strip().split(',')] for line in open("pzl.txt")] if (ps<=ds and pe>=de)or(ps>=ds and pe<=de)]) -print('res1:', res1) - -res1 = sum([1 for a,b in [np.array([line.strip().split(",")[0].split("-"), line.strip().split(",")[1].split("-")], dtype = int) for line in open("pzl.txt")] if reduce(lambda a,b:a*b,np.sign(b-a)) <= 0]) -print('res1:', res1) - -res2 = sum([1 for (ps,pe),(ds,de) in [[[int(n) for n in two.split('-')] for two in line.strip().split(',')] for line in open("pzl.txt")] if (ds<=pe<=de)or(ps<=de<=pe)]) -print('res2:', res2) - diff --git a/2022/day4/pzl.txt b/2022/day4/pzl.txt deleted file mode 100644 index 107893a..0000000 --- a/2022/day4/pzl.txt +++ /dev/null @@ -1,1000 +0,0 @@ -15-60,14-59 -32-80,17-79 -47-80,79-80 -64-64,12-63 -93-93,8-92 -35-41,34-41 -7-52,7-8 -28-95,28-94 -43-99,2-43 -74-77,75-78 -44-98,55-69 -2-52,53-53 -71-73,71-72 -35-49,48-49 -84-85,22-85 -88-90,7-89 -18-85,5-85 -4-4,3-82 -22-79,21-79 -6-6,6-84 -61-84,61-84 -66-95,16-94 -12-46,47-47 -93-93,55-93 -23-95,22-99 -16-16,16-58 -67-81,65-80 -58-66,24-66 -39-46,47-79 -9-9,9-89 -18-89,19-68 -4-89,10-47 -5-79,3-5 -12-90,20-91 -78-83,79-89 -6-80,5-81 -37-98,37-38 -33-98,32-97 -42-78,41-43 -31-97,2-98 -24-72,23-73 -6-88,5-29 -80-93,81-94 -5-85,4-84 -21-81,4-89 -45-84,22-44 -57-80,81-81 -46-76,47-77 -22-32,21-72 -5-29,4-29 -11-78,10-78 -61-62,61-92 -17-24,18-24 -57-93,56-97 -1-98,4-50 -5-5,5-42 -10-92,10-11 -8-86,22-87 -10-52,9-9 -3-13,10-14 -1-46,3-56 -85-85,7-84 -88-89,88-96 -1-93,1-93 -58-71,53-60 -79-96,30-79 -5-56,5-57 -42-98,41-99 -3-97,96-97 -55-65,54-56 -73-93,93-94 -18-98,99-99 -2-57,1-69 -41-42,41-77 -10-51,50-52 -73-73,73-89 -31-91,31-31 -6-27,6-61 -1-1,1-84 -21-56,57-57 -30-31,30-31 -24-72,16-72 -59-65,56-65 -18-18,17-99 -87-87,32-88 -30-30,30-60 -12-95,13-95 -29-66,6-65 -2-52,2-53 -93-93,2-93 -2-98,3-3 -19-90,15-18 -12-83,3-13 -21-99,22-22 -5-54,5-54 -43-73,44-73 -15-26,7-25 -52-94,53-95 -67-68,2-67 -2-92,91-92 -72-91,73-78 -20-87,21-87 -27-56,10-56 -20-88,89-89 -5-90,10-90 -11-20,12-21 -4-86,4-86 -44-46,45-98 -10-11,10-63 -8-9,13-98 -23-46,23-61 -71-87,15-86 -33-40,19-39 -7-93,8-93 -18-18,17-76 -3-58,8-59 -42-94,42-42 -12-86,44-87 -20-93,93-96 -12-54,13-36 -41-77,41-76 -20-20,19-96 -13-91,12-90 -3-98,4-4 -6-67,6-66 -25-61,30-54 -61-61,15-61 -24-81,24-24 -45-69,46-68 -56-66,52-98 -50-67,59-68 -2-97,3-72 -33-79,34-51 -56-92,55-91 -3-69,1-68 -34-34,33-34 -93-93,48-92 -22-69,21-30 -2-7,16-83 -87-95,19-88 -93-98,94-97 -42-95,43-95 -6-7,6-83 -23-95,19-86 -30-94,19-98 -59-94,14-95 -24-84,24-83 -31-36,32-35 -20-57,21-57 -2-46,2-2 -9-44,6-9 -25-64,26-65 -21-96,43-97 -1-5,4-50 -58-72,57-59 -96-97,22-96 -3-63,31-64 -18-67,16-16 -38-42,37-43 -9-18,18-82 -53-59,52-52 -6-99,6-6 -56-89,89-97 -88-90,13-89 -24-26,25-85 -46-87,30-45 -63-64,18-64 -12-94,9-13 -51-98,50-50 -8-18,7-17 -25-25,25-32 -5-39,39-40 -7-18,7-7 -23-65,65-94 -17-43,16-44 -32-91,90-90 -3-5,2-5 -28-39,27-42 -12-13,12-65 -2-91,48-92 -93-98,72-87 -31-43,31-42 -12-69,12-59 -2-14,14-81 -17-89,17-90 -20-37,38-62 -6-36,3-22 -6-97,5-7 -71-81,8-77 -18-61,61-84 -86-86,22-85 -9-27,12-79 -1-46,8-47 -12-85,85-98 -57-66,58-65 -62-97,3-99 -5-80,6-20 -39-88,38-88 -54-63,13-64 -17-40,39-57 -9-99,10-82 -24-37,24-24 -64-81,65-81 -2-47,48-48 -5-6,6-6 -26-42,38-91 -17-81,80-81 -4-7,5-8 -23-43,23-34 -98-99,3-97 -43-75,74-75 -58-78,18-78 -60-78,60-78 -10-95,88-96 -77-78,20-78 -36-70,36-57 -19-65,20-66 -1-3,3-15 -1-5,5-47 -23-80,22-22 -38-73,29-38 -41-41,40-57 -8-96,9-89 -28-28,29-96 -22-85,85-97 -20-92,21-92 -35-53,54-54 -45-49,47-48 -20-90,82-91 -38-92,37-93 -1-64,55-62 -56-75,32-55 -13-98,14-92 -4-16,3-16 -52-75,52-74 -1-86,1-87 -12-81,12-82 -35-36,35-97 -9-67,67-68 -14-97,13-14 -6-6,5-69 -73-90,48-95 -24-27,26-28 -25-52,26-50 -75-75,75-98 -22-96,7-18 -60-88,60-89 -47-49,8-48 -19-44,36-67 -4-5,9-96 -30-74,75-75 -10-10,11-77 -47-79,80-80 -12-68,12-69 -38-79,52-91 -29-30,4-29 -40-88,40-49 -4-39,4-39 -15-83,82-84 -69-96,4-96 -5-93,2-94 -49-50,48-48 -68-84,68-84 -16-74,74-86 -7-86,6-8 -47-80,48-74 -3-69,69-71 -49-58,60-78 -31-59,32-60 -4-64,4-64 -59-91,91-91 -90-90,9-89 -70-85,44-86 -24-62,62-85 -1-11,2-94 -15-99,19-95 -12-32,31-32 -56-61,56-72 -7-44,1-7 -1-70,3-71 -29-62,1-61 -7-97,8-97 -90-92,48-91 -54-75,53-74 -2-98,98-98 -2-69,70-70 -45-88,64-89 -28-60,28-28 -10-94,27-98 -32-32,32-49 -63-64,31-62 -15-69,16-70 -16-23,13-16 -20-66,66-67 -16-99,17-93 -62-64,7-63 -97-97,41-78 -41-75,27-39 -2-38,37-37 -13-96,95-96 -7-35,42-75 -39-40,3-40 -4-89,2-5 -22-35,35-36 -6-59,58-59 -23-29,9-28 -77-77,76-76 -12-48,11-96 -57-85,56-84 -90-92,68-91 -97-98,62-98 -23-69,22-69 -4-85,3-95 -50-87,33-88 -33-74,32-74 -20-67,21-47 -5-90,6-91 -50-98,50-98 -4-94,1-26 -4-38,39-78 -91-91,11-90 -54-99,55-99 -80-84,84-85 -33-91,16-33 -62-83,29-61 -23-67,23-68 -26-94,29-91 -21-84,32-84 -48-61,28-48 -15-15,15-76 -20-26,58-79 -75-75,47-74 -30-63,31-63 -16-95,55-96 -45-92,44-66 -59-95,58-99 -19-19,18-19 -30-36,34-36 -5-8,3-9 -6-62,6-6 -90-90,67-89 -31-79,31-84 -20-24,19-23 -33-72,33-86 -59-95,1-59 -4-91,4-97 -92-93,75-92 -42-95,18-99 -95-96,20-95 -23-23,22-50 -5-99,5-6 -16-76,17-17 -48-59,49-76 -51-91,13-91 -10-11,5-10 -19-95,18-18 -41-41,1-41 -40-64,40-78 -56-84,12-83 -17-63,16-84 -15-49,15-15 -31-91,90-92 -38-40,8-85 -46-96,46-79 -54-72,54-54 -2-96,8-97 -2-96,1-98 -15-86,16-44 -10-65,9-65 -79-79,9-78 -18-70,17-70 -68-83,14-68 -28-68,26-29 -18-54,17-21 -61-82,20-60 -47-76,47-93 -6-79,79-85 -13-13,13-91 -40-40,40-92 -9-76,18-83 -17-40,18-98 -45-60,10-54 -26-48,48-63 -15-58,14-92 -69-70,22-69 -5-88,5-89 -42-44,46-89 -38-76,44-77 -1-73,2-79 -52-98,49-82 -5-94,29-99 -13-63,13-94 -72-87,71-86 -27-94,93-94 -35-94,1-93 -43-49,42-48 -72-94,72-72 -43-86,42-85 -1-3,3-94 -42-80,30-92 -22-85,23-84 -39-43,44-44 -36-36,28-35 -12-46,13-78 -14-98,14-98 -69-78,73-79 -91-98,74-91 -10-11,10-96 -32-40,25-39 -50-81,12-80 -88-89,6-88 -48-69,7-48 -4-8,9-93 -74-84,74-75 -27-82,27-82 -1-97,1-1 -43-69,43-68 -13-27,14-27 -9-27,32-78 -22-78,22-23 -47-58,46-46 -19-98,3-98 -27-78,27-78 -74-90,4-74 -44-46,31-45 -35-81,6-55 -6-60,6-59 -10-32,32-33 -23-23,23-53 -4-87,4-86 -96-96,6-95 -1-37,2-38 -77-88,74-87 -3-92,5-93 -15-96,16-92 -37-58,34-36 -40-75,38-74 -2-62,55-62 -43-93,43-43 -77-93,70-77 -56-76,56-77 -2-2,3-88 -2-53,53-60 -30-31,29-36 -30-30,29-88 -42-79,41-80 -75-75,28-74 -18-88,8-87 -13-63,64-64 -3-48,46-49 -12-30,12-12 -3-99,4-94 -3-3,4-64 -30-76,29-29 -12-60,11-54 -9-95,9-95 -66-73,61-73 -10-11,10-11 -42-72,42-44 -8-89,10-89 -25-74,75-75 -33-44,34-45 -28-78,27-77 -48-97,37-93 -46-65,10-64 -17-97,68-96 -50-93,93-95 -22-96,23-97 -2-20,1-86 -6-60,60-80 -33-65,66-66 -23-23,16-22 -41-89,40-62 -17-96,97-97 -70-71,9-70 -11-24,11-35 -8-48,49-49 -78-92,75-91 -21-98,99-99 -12-45,12-13 -36-36,35-58 -9-15,15-98 -43-61,61-89 -52-53,52-74 -2-51,1-5 -29-29,28-75 -1-45,3-47 -5-13,12-13 -17-86,17-17 -4-99,5-99 -77-88,76-90 -50-70,50-51 -3-88,2-87 -4-55,4-75 -8-22,8-8 -76-99,77-96 -14-72,13-90 -1-62,63-94 -11-74,5-10 -37-65,65-65 -10-73,11-91 -34-78,21-34 -47-61,46-62 -11-86,8-10 -14-39,14-40 -8-81,82-89 -85-86,18-85 -14-91,66-97 -20-51,19-43 -1-57,3-57 -14-52,45-53 -37-92,36-99 -84-84,32-83 -45-88,44-81 -30-80,80-92 -6-82,6-6 -9-9,9-87 -26-28,21-27 -1-92,7-93 -32-90,33-33 -26-44,44-66 -24-86,23-86 -19-83,84-99 -28-40,28-30 -18-88,17-87 -62-70,71-71 -3-86,3-3 -20-20,19-90 -7-18,4-17 -29-41,41-42 -24-57,40-58 -15-15,15-54 -19-47,19-20 -63-64,21-63 -29-30,21-30 -61-62,16-61 -16-78,8-15 -63-74,63-63 -68-69,31-69 -3-99,4-99 -28-28,29-39 -72-85,3-67 -64-67,68-68 -75-97,74-74 -11-99,80-88 -10-93,24-79 -93-94,2-94 -1-98,1-99 -2-95,2-2 -20-75,21-75 -26-85,2-26 -9-96,9-99 -85-85,85-85 -59-70,59-70 -22-27,23-23 -41-42,41-52 -2-17,1-16 -41-54,55-55 -8-89,7-9 -13-98,9-13 -10-84,3-84 -40-90,39-39 -12-93,2-93 -5-99,4-99 -30-81,30-88 -1-43,2-54 -72-84,81-85 -2-34,4-35 -7-88,6-88 -66-98,65-99 -93-94,36-94 -66-76,67-77 -15-97,15-98 -53-60,53-54 -1-81,81-86 -51-65,17-50 -11-51,4-50 -16-16,17-82 -44-80,45-81 -32-39,9-38 -51-76,51-75 -58-98,59-79 -60-61,60-61 -7-8,7-87 -32-33,32-32 -35-85,79-97 -20-65,20-66 -5-73,6-74 -15-76,14-82 -43-91,43-99 -8-94,42-95 -19-92,92-94 -2-99,2-2 -91-96,5-92 -7-94,7-7 -82-82,33-82 -1-5,1-2 -87-88,48-87 -88-88,40-88 -24-32,10-31 -15-82,14-81 -18-34,18-33 -40-46,39-73 -40-64,46-65 -3-94,93-95 -41-56,57-85 -48-56,2-48 -79-93,80-94 -45-78,44-66 -49-77,77-89 -29-67,28-28 -53-96,95-97 -6-44,24-99 -7-68,28-84 -6-77,76-78 -3-99,98-99 -11-85,11-85 -24-24,25-96 -44-51,52-64 -88-90,89-98 -2-97,3-97 -15-16,15-58 -5-96,6-92 -2-22,5-21 -11-11,10-87 -95-98,75-96 -8-69,3-7 -25-81,26-74 -25-99,24-68 -92-93,17-92 -2-73,2-2 -87-95,11-87 -20-93,15-97 -7-98,49-98 -4-79,4-31 -50-57,50-57 -67-68,34-68 -57-68,72-90 -3-33,10-34 -26-27,26-80 -8-8,8-82 -93-93,2-93 -12-86,1-12 -4-8,8-89 -14-49,15-50 -5-35,33-33 -92-93,6-93 -28-76,76-93 -47-48,47-85 -7-94,2-43 -43-85,22-43 -71-91,90-91 -14-92,14-91 -5-8,9-78 -13-33,33-33 -32-93,37-86 -37-89,37-90 -51-53,11-52 -11-38,37-37 -4-85,4-89 -6-10,7-14 -21-33,20-91 -9-92,92-92 -29-96,97-97 -13-94,12-98 -11-96,12-97 -35-39,39-70 -31-60,31-95 -18-84,17-83 -5-6,5-89 -63-64,40-63 -89-90,6-90 -88-89,89-90 -69-83,76-83 -16-82,81-82 -5-50,49-80 -9-98,9-99 -75-76,18-75 -1-46,16-46 -45-52,46-52 -18-43,17-19 -8-80,19-81 -11-11,11-86 -20-49,19-49 -54-89,53-90 -9-9,9-95 -21-86,17-21 -57-95,33-94 -13-14,13-53 -7-21,8-21 -3-24,12-25 -89-91,45-90 -82-83,22-82 -57-63,64-72 -6-7,6-70 -19-97,18-18 -30-56,30-31 -24-96,25-98 -1-74,7-99 -24-90,25-63 -44-57,43-58 -62-85,86-86 -15-49,20-50 -20-69,20-69 -38-66,67-77 -8-27,7-91 -8-21,15-51 -19-83,9-10 -23-23,20-22 -19-19,19-88 -4-9,1-8 -15-69,16-16 -20-42,42-69 -43-47,7-46 -5-93,6-94 -10-55,9-54 -8-91,9-27 -42-97,43-98 -20-82,14-81 -19-31,19-70 -7-93,7-8 -28-66,17-28 -65-96,17-95 -40-78,77-79 -51-97,53-96 -25-40,11-25 -19-97,20-96 -23-88,40-88 -81-81,35-80 -71-86,34-86 -13-88,14-89 -63-84,64-85 -56-98,7-97 -31-82,30-81 -58-98,58-99 -36-47,46-46 -80-80,20-79 -59-92,19-91 -19-66,63-84 -70-70,4-70 -66-74,65-79 -5-68,1-4 -17-52,11-17 -6-77,78-78 -10-11,10-25 -13-96,22-61 -5-20,6-31 -18-61,19-50 -6-35,6-34 -12-91,11-90 -1-1,2-21 -2-98,1-99 -28-98,25-38 -34-63,35-76 -20-85,84-85 -11-13,13-31 -72-74,2-73 -3-10,6-25 -46-46,46-88 -34-59,32-60 -77-77,23-77 -11-12,11-83 -4-83,5-84 -10-89,9-88 -82-90,79-83 -1-60,4-61 -29-93,28-92 -1-47,36-48 -51-94,45-93 -30-62,30-33 -3-96,4-97 -57-96,56-96 -44-44,44-94 -44-58,44-45 -3-16,26-84 -31-32,31-78 -41-96,42-96 -34-63,62-90 -20-22,16-23 -61-99,60-98 -3-3,4-21 -2-46,11-47 -7-8,7-64 -7-47,47-70 -49-87,50-89 -22-95,21-77 -87-87,18-86 -30-30,30-99 -54-66,65-66 -77-77,37-76 -11-32,13-32 -93-95,19-93 -3-93,1-92 -37-46,36-55 -12-76,76-85 -18-94,23-74 -10-99,98-99 -23-23,24-31 -4-6,9-96 -42-56,9-45 -9-50,14-51 -22-82,23-83 -21-56,56-92 -1-7,1-1 -96-96,1-96 -61-70,27-70 -2-38,9-37 -19-20,20-56 -61-66,1-67 -42-44,2-43 -6-6,6-90 -40-89,4-14 -96-96,11-96 -54-77,77-88 -29-81,29-81 -12-77,5-76 -4-86,3-86 -57-58,20-57 -18-18,19-62 -9-56,10-57 -26-91,35-92 -6-56,7-81 -1-78,1-61 -76-79,43-76 -96-99,32-97 -27-30,28-31 -94-95,21-94 -22-25,18-24 -40-89,39-41 -20-26,20-20 -28-77,77-88 -2-79,14-80 -17-34,20-33 -26-89,25-88 -5-29,20-73 -9-78,9-77 -11-12,11-79 -25-62,24-26 -1-94,1-2 -90-91,51-90 -8-96,9-97 -6-20,17-40 -42-82,24-42 -10-77,10-76 -32-88,33-87 -58-63,62-62 -64-70,64-71 -34-54,55-55 -88-90,19-88 -77-86,77-78 -3-88,88-89 -42-45,31-44 -99-99,88-97 -81-99,18-81 -7-95,11-88 -4-72,2-92 -7-7,7-26 -10-90,9-89 -2-2,3-65 -7-49,8-49 -51-98,52-92 -27-70,2-67 -65-73,37-69 -81-83,81-82 -40-55,41-54 -4-38,29-90 -53-57,36-57 -79-79,13-78 -18-83,19-84 -11-91,10-93 -7-79,8-80 -18-56,18-18 -80-80,32-79 -2-44,34-63 -6-73,73-74 -12-70,13-71 -25-57,15-56 -40-95,40-41 -1-63,1-2 -7-7,8-71 -23-94,23-23 -51-89,46-88 -67-67,8-66 -24-91,21-25 -67-72,9-71 -8-97,9-97 -50-60,36-60 -1-56,27-32 -2-6,6-91 -67-73,68-74 -30-30,30-37 -4-69,5-68 -94-95,10-95 -30-77,77-78 -10-95,10-60 -37-93,2-32 -8-99,7-7 -57-89,58-99 -1-30,13-54 -31-97,32-32 -82-82,18-82 -10-17,15-18 -74-87,75-88 -21-84,82-86 -11-90,12-17 -26-98,97-99 -35-95,35-95 -2-4,3-75 -3-23,24-60 -85-94,85-95 -1-3,3-22 -53-78,53-79 -1-41,3-40 -54-87,54-65 -3-91,17-90 -41-75,40-74 -44-78,43-77 -75-80,41-74 -43-58,36-47 -61-63,62-64 -16-88,16-87 -4-93,5-94 -56-93,93-98 -27-66,27-27 -51-75,35-74 -50-77,38-76 -51-78,29-77 -12-19,20-86 -4-90,1-71 -13-15,14-25 -75-84,74-74 -7-90,6-65 -56-73,72-74 -20-21,20-83 -7-35,3-35 -1-5,5-46 -30-90,46-90 -10-78,3-87 -25-87,25-25 -5-7,6-92 -24-85,25-84 -14-87,16-87 -3-87,4-88 -53-64,52-52 -71-73,72-73 -19-33,32-43 -3-68,24-69 -4-43,9-44 -62-62,62-69 -32-38,37-38 -14-68,68-70 -64-88,88-95 -27-81,81-84 -2-24,24-24 -52-52,52-90 -1-97,11-95 -9-94,4-93 -5-33,4-24 -37-37,36-76 -1-2,3-64 -85-93,10-85 -39-85,38-84 -47-48,16-47 -30-49,31-50 -46-85,45-45 -7-86,4-85 -23-66,66-67 -54-95,16-27 -2-3,7-59 -57-57,35-56 -20-21,20-90 -35-58,34-54 -14-91,91-93 -9-99,16-97 -24-50,25-50 -18-27,19-86 -78-92,79-79 -23-90,53-91 -27-73,69-70 -90-94,25-90 -8-68,1-67 -50-87,5-50 -25-67,24-67 -3-98,8-97 -85-99,57-98 -34-34,17-35 -8-80,81-81 -14-98,15-99 -1-2,1-99 -24-49,23-43 -36-39,35-39 -1-25,11-26 -2-51,6-97 -33-58,23-57 -25-80,24-26 -26-82,25-25 -44-95,43-94 -61-68,9-62 -27-55,28-48 -22-88,20-23 diff --git a/2022/day4/ref.txt b/2022/day4/ref.txt deleted file mode 100644 index 9f9e9cf..0000000 --- a/2022/day4/ref.txt +++ /dev/null @@ -1,6 +0,0 @@ -2-4,6-8 -2-3,4-5 -5-7,7-9 -2-8,3-7 -6-6,4-6 -2-6,4-8 diff --git a/2022/day5/asd.py b/2022/day5/asd.py deleted file mode 100755 index 8fc94fa..0000000 --- a/2022/day5/asd.py +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env python3 - -from functools import reduce - -# filename = "ref_mod.txt" -filename = "pzl_mod.txt" - -res1 = '' -res2 = '' -f = open(filename) - -stacks1 = [] -stacks2 = [] -for line in f: - line = line.strip() - - if line == '': - break - - stack = [] - for c in line: - stack.append(c) - stacks1.append(stack) - stacks2.append(stack) -# print(stacks1) - -for line in f: - line = line.strip() - line = line.replace('move', '').replace('from ', '').replace('to ', '').strip() - mcount, mfrom, mto = [int(i) for i in line.split(' ')] - - mfrom -= 1 - mto -= 1 - - to_move = stacks1[mfrom][-mcount:] - stacks1[mfrom] = stacks1[mfrom][:-mcount] - stacks1[mto] = stacks1[mto] + to_move[::-1] - # print(stacks1) - - to_move = stacks2[mfrom][-mcount:] - stacks2[mfrom] = stacks2[mfrom][:-mcount] - stacks2[mto] = stacks2[mto] + to_move - # print(stacks2) - -f.close() - -print(stacks1) -print(stacks2) - -for i in stacks1: - res1 = res1 + i[-1] -print('res1:', res1) - -for i in stacks2: - res2 = res2 + i[-1] -print('res2:', res2) - diff --git a/2022/day5/oneline.py b/2022/day5/oneline.py deleted file mode 100755 index 736492a..0000000 --- a/2022/day5/oneline.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python3 - -from re import findall -from functools import reduce - -# filename = "ref.txt" -filename = "pzl.txt" - -m = [ [i for i in line.rstrip('\n')[1::4] ] for line in open(filename) if line.find('[') != -1] -# print('m:', m) - -mt = [[m[col_n][row_n] for col_n,_ in enumerate(m) if m[col_n][row_n]!=' '][::-1] for row_n,_ in enumerate(m[0])] -# print('mt:', mt) - -a = [ [int(val) if i==0 else int(val)-1 for i,val in enumerate(findall('\d+', line))] for line in open(filename) if line[0] == 'm'] -# print('a:', a) - - -b1 = reduce(lambda state, action: [row[:-action[0]] if row_n==action[1] else row+state[action[1]][-action[0]:][::-1] if row_n==action[2] else row for row_n, row in enumerate(state)], a, mt) -# print('b1:', b1) -res1 = ''.join([i[-1] for i in b1]) -print('res1:', res1) - -b2 = reduce(lambda state, action: [row[:-action[0]] if row_n==action[1] else row+state[action[1]][-action[0]:] if row_n==action[2] else row for row_n, row in enumerate(state)], a, mt) -# print('b2:', b2) -res2 = ''.join([i[-1] for i in b2]) -print('res2:', res2) - diff --git a/2022/day5/pzl.txt b/2022/day5/pzl.txt deleted file mode 100644 index 802f66b..0000000 --- a/2022/day5/pzl.txt +++ /dev/null @@ -1,513 +0,0 @@ - [M] [B] [N] -[T] [H] [V] [Q] [H] -[Q] [N] [H] [W] [T] [Q] -[V] [P] [F] [Q] [P] [C] [R] -[C] [D] [T] [N] [N] [L] [S] [J] -[D] [V] [W] [R] [M] [G] [R] [N] [D] -[S] [F] [Q] [Q] [F] [F] [F] [Z] [S] -[N] [M] [F] [D] [R] [C] [W] [T] [M] - 1 2 3 4 5 6 7 8 9 - -move 1 from 8 to 7 -move 1 from 2 to 7 -move 6 from 9 to 8 -move 1 from 9 to 1 -move 1 from 9 to 1 -move 3 from 3 to 6 -move 3 from 3 to 9 -move 1 from 9 to 2 -move 5 from 7 to 9 -move 9 from 1 to 6 -move 3 from 4 to 9 -move 2 from 9 to 2 -move 1 from 4 to 2 -move 1 from 3 to 9 -move 8 from 9 to 4 -move 14 from 6 to 7 -move 1 from 3 to 2 -move 5 from 4 to 2 -move 5 from 5 to 7 -move 4 from 2 to 1 -move 2 from 4 to 9 -move 1 from 4 to 3 -move 3 from 5 to 7 -move 1 from 8 to 6 -move 2 from 8 to 7 -move 2 from 1 to 2 -move 1 from 9 to 7 -move 2 from 1 to 3 -move 5 from 6 to 5 -move 4 from 5 to 7 -move 3 from 8 to 4 -move 20 from 7 to 1 -move 11 from 7 to 5 -move 1 from 6 to 9 -move 3 from 9 to 2 -move 12 from 1 to 9 -move 2 from 8 to 3 -move 4 from 2 to 8 -move 8 from 2 to 1 -move 4 from 8 to 9 -move 1 from 2 to 5 -move 12 from 9 to 7 -move 4 from 4 to 9 -move 4 from 9 to 5 -move 13 from 5 to 4 -move 4 from 4 to 7 -move 1 from 7 to 9 -move 2 from 9 to 5 -move 9 from 1 to 2 -move 1 from 8 to 3 -move 5 from 4 to 2 -move 1 from 3 to 6 -move 7 from 2 to 8 -move 6 from 1 to 6 -move 6 from 8 to 7 -move 6 from 2 to 1 -move 3 from 9 to 3 -move 7 from 3 to 7 -move 4 from 4 to 9 -move 1 from 8 to 9 -move 1 from 3 to 9 -move 1 from 2 to 4 -move 1 from 9 to 6 -move 5 from 1 to 9 -move 1 from 4 to 9 -move 2 from 9 to 1 -move 8 from 6 to 7 -move 4 from 9 to 7 -move 2 from 5 to 2 -move 2 from 1 to 9 -move 14 from 7 to 4 -move 22 from 7 to 2 -move 2 from 7 to 4 -move 3 from 7 to 5 -move 9 from 4 to 7 -move 6 from 2 to 4 -move 8 from 4 to 3 -move 14 from 2 to 9 -move 2 from 3 to 9 -move 3 from 2 to 9 -move 4 from 4 to 2 -move 1 from 4 to 5 -move 1 from 1 to 4 -move 5 from 7 to 8 -move 1 from 1 to 3 -move 4 from 5 to 2 -move 6 from 3 to 9 -move 1 from 3 to 4 -move 4 from 8 to 9 -move 2 from 4 to 6 -move 4 from 5 to 3 -move 1 from 7 to 6 -move 1 from 8 to 5 -move 3 from 3 to 1 -move 33 from 9 to 5 -move 5 from 2 to 1 -move 1 from 3 to 5 -move 1 from 7 to 6 -move 18 from 5 to 1 -move 1 from 2 to 8 -move 6 from 5 to 4 -move 1 from 8 to 7 -move 2 from 4 to 1 -move 4 from 1 to 2 -move 19 from 1 to 2 -move 4 from 6 to 8 -move 4 from 1 to 8 -move 14 from 2 to 9 -move 5 from 2 to 4 -move 1 from 8 to 2 -move 8 from 2 to 5 -move 5 from 8 to 4 -move 4 from 9 to 7 -move 1 from 8 to 1 -move 16 from 5 to 4 -move 15 from 4 to 5 -move 1 from 9 to 5 -move 5 from 7 to 6 -move 2 from 7 to 6 -move 1 from 1 to 9 -move 7 from 6 to 7 -move 1 from 8 to 5 -move 1 from 1 to 9 -move 12 from 5 to 7 -move 7 from 5 to 9 -move 12 from 7 to 2 -move 1 from 7 to 4 -move 7 from 4 to 7 -move 2 from 9 to 4 -move 5 from 4 to 9 -move 8 from 2 to 3 -move 4 from 2 to 4 -move 9 from 4 to 8 -move 6 from 3 to 5 -move 8 from 7 to 3 -move 1 from 4 to 3 -move 7 from 8 to 9 -move 4 from 5 to 4 -move 6 from 3 to 1 -move 4 from 3 to 4 -move 1 from 3 to 6 -move 6 from 4 to 9 -move 1 from 6 to 5 -move 17 from 9 to 4 -move 3 from 7 to 3 -move 1 from 7 to 9 -move 2 from 5 to 3 -move 2 from 1 to 3 -move 2 from 8 to 9 -move 1 from 5 to 1 -move 14 from 4 to 5 -move 2 from 3 to 2 -move 1 from 7 to 6 -move 10 from 9 to 4 -move 12 from 9 to 4 -move 9 from 4 to 5 -move 1 from 2 to 9 -move 13 from 5 to 9 -move 2 from 5 to 1 -move 1 from 2 to 9 -move 3 from 4 to 2 -move 12 from 4 to 7 -move 8 from 5 to 7 -move 1 from 1 to 9 -move 1 from 6 to 4 -move 1 from 5 to 4 -move 1 from 4 to 8 -move 5 from 3 to 4 -move 10 from 9 to 6 -move 3 from 6 to 2 -move 7 from 6 to 5 -move 6 from 5 to 4 -move 1 from 8 to 5 -move 1 from 1 to 4 -move 2 from 7 to 2 -move 5 from 4 to 9 -move 2 from 5 to 8 -move 1 from 1 to 3 -move 2 from 1 to 7 -move 6 from 7 to 9 -move 9 from 9 to 8 -move 1 from 1 to 3 -move 4 from 2 to 7 -move 11 from 7 to 3 -move 11 from 8 to 6 -move 7 from 3 to 1 -move 4 from 7 to 2 -move 3 from 2 to 9 -move 8 from 1 to 5 -move 2 from 7 to 5 -move 2 from 2 to 9 -move 2 from 3 to 9 -move 11 from 4 to 7 -move 7 from 9 to 5 -move 6 from 6 to 5 -move 2 from 2 to 9 -move 1 from 2 to 3 -move 6 from 9 to 4 -move 3 from 9 to 1 -move 4 from 3 to 5 -move 6 from 7 to 1 -move 2 from 6 to 3 -move 2 from 9 to 2 -move 3 from 3 to 2 -move 3 from 6 to 8 -move 2 from 7 to 5 -move 20 from 5 to 6 -move 8 from 5 to 1 -move 1 from 5 to 9 -move 2 from 8 to 4 -move 1 from 8 to 7 -move 16 from 1 to 8 -move 8 from 8 to 9 -move 4 from 2 to 4 -move 1 from 1 to 5 -move 1 from 5 to 4 -move 3 from 8 to 4 -move 14 from 4 to 6 -move 5 from 8 to 7 -move 6 from 7 to 8 -move 29 from 6 to 2 -move 3 from 9 to 8 -move 21 from 2 to 3 -move 1 from 8 to 3 -move 6 from 9 to 4 -move 8 from 3 to 5 -move 7 from 8 to 4 -move 7 from 3 to 9 -move 3 from 7 to 2 -move 12 from 4 to 8 -move 2 from 3 to 1 -move 2 from 9 to 1 -move 1 from 6 to 7 -move 1 from 7 to 6 -move 1 from 6 to 3 -move 3 from 1 to 8 -move 2 from 4 to 1 -move 4 from 6 to 1 -move 5 from 2 to 7 -move 1 from 1 to 2 -move 5 from 1 to 2 -move 2 from 8 to 1 -move 1 from 4 to 5 -move 9 from 8 to 4 -move 3 from 7 to 9 -move 7 from 5 to 7 -move 2 from 5 to 9 -move 4 from 9 to 2 -move 3 from 3 to 2 -move 5 from 2 to 7 -move 2 from 8 to 2 -move 2 from 7 to 3 -move 1 from 8 to 6 -move 2 from 1 to 2 -move 1 from 6 to 7 -move 1 from 8 to 1 -move 12 from 7 to 1 -move 5 from 2 to 7 -move 7 from 4 to 2 -move 2 from 4 to 1 -move 5 from 3 to 8 -move 7 from 1 to 9 -move 4 from 7 to 1 -move 7 from 1 to 5 -move 12 from 9 to 2 -move 27 from 2 to 4 -move 3 from 8 to 9 -move 6 from 2 to 5 -move 6 from 1 to 8 -move 1 from 7 to 6 -move 9 from 5 to 2 -move 3 from 9 to 2 -move 13 from 4 to 5 -move 10 from 2 to 7 -move 1 from 9 to 8 -move 11 from 5 to 7 -move 1 from 8 to 7 -move 1 from 2 to 6 -move 13 from 4 to 3 -move 23 from 7 to 4 -move 1 from 6 to 9 -move 1 from 2 to 4 -move 7 from 3 to 5 -move 1 from 9 to 8 -move 19 from 4 to 1 -move 2 from 4 to 1 -move 1 from 7 to 6 -move 1 from 4 to 5 -move 1 from 5 to 7 -move 11 from 5 to 1 -move 2 from 5 to 4 -move 2 from 6 to 9 -move 3 from 8 to 2 -move 2 from 8 to 1 -move 3 from 2 to 1 -move 1 from 9 to 5 -move 6 from 1 to 3 -move 1 from 9 to 7 -move 2 from 7 to 5 -move 2 from 8 to 6 -move 1 from 3 to 2 -move 2 from 8 to 5 -move 1 from 2 to 1 -move 3 from 4 to 1 -move 3 from 5 to 1 -move 2 from 5 to 1 -move 2 from 6 to 9 -move 1 from 9 to 6 -move 1 from 4 to 5 -move 1 from 9 to 8 -move 1 from 8 to 6 -move 8 from 1 to 6 -move 7 from 1 to 8 -move 9 from 1 to 6 -move 1 from 5 to 3 -move 3 from 8 to 4 -move 11 from 3 to 4 -move 1 from 3 to 6 -move 10 from 6 to 8 -move 13 from 1 to 6 -move 3 from 4 to 5 -move 7 from 8 to 6 -move 3 from 8 to 5 -move 6 from 5 to 3 -move 22 from 6 to 9 -move 4 from 3 to 6 -move 4 from 9 to 5 -move 1 from 1 to 5 -move 2 from 3 to 4 -move 2 from 1 to 5 -move 1 from 9 to 2 -move 5 from 8 to 3 -move 2 from 9 to 2 -move 11 from 6 to 9 -move 3 from 2 to 7 -move 1 from 6 to 7 -move 12 from 9 to 8 -move 4 from 7 to 1 -move 12 from 4 to 8 -move 2 from 4 to 7 -move 1 from 1 to 8 -move 1 from 5 to 1 -move 19 from 8 to 4 -move 4 from 5 to 1 -move 1 from 7 to 4 -move 1 from 7 to 1 -move 3 from 3 to 4 -move 2 from 8 to 4 -move 1 from 5 to 7 -move 1 from 7 to 9 -move 8 from 1 to 8 -move 1 from 1 to 4 -move 1 from 3 to 9 -move 1 from 3 to 5 -move 1 from 5 to 2 -move 7 from 8 to 7 -move 16 from 4 to 7 -move 1 from 7 to 4 -move 3 from 8 to 2 -move 14 from 7 to 4 -move 1 from 5 to 8 -move 5 from 7 to 5 -move 16 from 4 to 5 -move 3 from 5 to 4 -move 3 from 2 to 1 -move 1 from 7 to 9 -move 11 from 4 to 2 -move 3 from 8 to 6 -move 2 from 1 to 8 -move 1 from 4 to 9 -move 18 from 5 to 1 -move 1 from 8 to 7 -move 3 from 7 to 9 -move 18 from 9 to 3 -move 3 from 6 to 9 -move 7 from 1 to 6 -move 1 from 8 to 4 -move 1 from 4 to 9 -move 3 from 6 to 4 -move 5 from 9 to 2 -move 2 from 4 to 7 -move 7 from 2 to 8 -move 1 from 7 to 3 -move 2 from 6 to 8 -move 1 from 9 to 5 -move 1 from 6 to 8 -move 1 from 4 to 8 -move 1 from 5 to 3 -move 1 from 7 to 5 -move 8 from 8 to 7 -move 10 from 2 to 6 -move 1 from 9 to 3 -move 6 from 6 to 2 -move 5 from 6 to 2 -move 7 from 2 to 7 -move 12 from 1 to 6 -move 2 from 2 to 1 -move 1 from 2 to 5 -move 4 from 7 to 6 -move 12 from 3 to 1 -move 2 from 7 to 2 -move 9 from 3 to 8 -move 1 from 2 to 6 -move 1 from 5 to 4 -move 9 from 6 to 5 -move 1 from 7 to 6 -move 1 from 4 to 9 -move 9 from 6 to 7 -move 7 from 8 to 3 -move 6 from 3 to 1 -move 4 from 8 to 3 -move 5 from 3 to 1 -move 1 from 9 to 8 -move 2 from 8 to 9 -move 5 from 5 to 7 -move 14 from 7 to 8 -move 1 from 9 to 4 -move 2 from 2 to 1 -move 3 from 5 to 3 -move 2 from 3 to 1 -move 1 from 4 to 6 -move 6 from 8 to 6 -move 6 from 8 to 3 -move 3 from 6 to 1 -move 2 from 8 to 9 -move 19 from 1 to 6 -move 3 from 9 to 3 -move 6 from 3 to 4 -move 6 from 6 to 2 -move 4 from 3 to 9 -move 1 from 7 to 9 -move 2 from 5 to 7 -move 5 from 9 to 6 -move 6 from 7 to 2 -move 11 from 2 to 5 -move 2 from 7 to 4 -move 4 from 4 to 3 -move 2 from 4 to 8 -move 12 from 1 to 2 -move 1 from 8 to 2 -move 8 from 5 to 7 -move 2 from 4 to 9 -move 2 from 7 to 1 -move 4 from 2 to 3 -move 1 from 8 to 6 -move 1 from 1 to 5 -move 2 from 9 to 1 -move 2 from 7 to 3 -move 2 from 5 to 2 -move 1 from 5 to 7 -move 2 from 7 to 8 -move 1 from 5 to 7 -move 5 from 3 to 4 -move 3 from 1 to 7 -move 1 from 2 to 4 -move 15 from 6 to 1 -move 4 from 4 to 1 -move 4 from 2 to 3 -move 8 from 3 to 2 -move 5 from 2 to 4 -move 1 from 8 to 6 -move 1 from 8 to 9 -move 1 from 3 to 1 -move 3 from 7 to 3 -move 5 from 7 to 6 -move 4 from 2 to 9 -move 6 from 2 to 6 -move 4 from 9 to 6 -move 12 from 1 to 5 -move 6 from 4 to 1 -move 1 from 3 to 6 -move 4 from 5 to 8 -move 7 from 5 to 3 -move 3 from 8 to 2 -move 1 from 2 to 3 -move 1 from 9 to 5 -move 1 from 4 to 5 -move 1 from 8 to 5 -move 8 from 6 to 9 -move 10 from 1 to 4 -move 3 from 6 to 1 -move 9 from 3 to 6 -move 1 from 3 to 8 -move 1 from 2 to 4 -move 6 from 9 to 1 -move 1 from 1 to 4 -move 10 from 1 to 6 -move 1 from 8 to 6 -move 13 from 6 to 7 -move 1 from 2 to 1 -move 1 from 9 to 6 -move 9 from 7 to 5 -move 1 from 9 to 4 -move 3 from 7 to 1 -move 3 from 5 to 6 -move 10 from 4 to 7 -move 5 from 6 to 5 -move 3 from 4 to 5 -move 13 from 6 to 9 -move 7 from 5 to 3 -move 6 from 3 to 2 -move 5 from 6 to 4 -move 4 from 2 to 8 diff --git a/2022/day5/pzl_mod.txt b/2022/day5/pzl_mod.txt deleted file mode 100644 index cb5b571..0000000 --- a/2022/day5/pzl_mod.txt +++ /dev/null @@ -1,513 +0,0 @@ -NSDCVQT -MFV -FQWDPNHM -DQRTF -RFMNQHVB -CFGNPWQ -WFRLCT -TZNS -MSDJRQHN - -move 1 from 8 to 7 -move 1 from 2 to 7 -move 6 from 9 to 8 -move 1 from 9 to 1 -move 1 from 9 to 1 -move 3 from 3 to 6 -move 3 from 3 to 9 -move 1 from 9 to 2 -move 5 from 7 to 9 -move 9 from 1 to 6 -move 3 from 4 to 9 -move 2 from 9 to 2 -move 1 from 4 to 2 -move 1 from 3 to 9 -move 8 from 9 to 4 -move 14 from 6 to 7 -move 1 from 3 to 2 -move 5 from 4 to 2 -move 5 from 5 to 7 -move 4 from 2 to 1 -move 2 from 4 to 9 -move 1 from 4 to 3 -move 3 from 5 to 7 -move 1 from 8 to 6 -move 2 from 8 to 7 -move 2 from 1 to 2 -move 1 from 9 to 7 -move 2 from 1 to 3 -move 5 from 6 to 5 -move 4 from 5 to 7 -move 3 from 8 to 4 -move 20 from 7 to 1 -move 11 from 7 to 5 -move 1 from 6 to 9 -move 3 from 9 to 2 -move 12 from 1 to 9 -move 2 from 8 to 3 -move 4 from 2 to 8 -move 8 from 2 to 1 -move 4 from 8 to 9 -move 1 from 2 to 5 -move 12 from 9 to 7 -move 4 from 4 to 9 -move 4 from 9 to 5 -move 13 from 5 to 4 -move 4 from 4 to 7 -move 1 from 7 to 9 -move 2 from 9 to 5 -move 9 from 1 to 2 -move 1 from 8 to 3 -move 5 from 4 to 2 -move 1 from 3 to 6 -move 7 from 2 to 8 -move 6 from 1 to 6 -move 6 from 8 to 7 -move 6 from 2 to 1 -move 3 from 9 to 3 -move 7 from 3 to 7 -move 4 from 4 to 9 -move 1 from 8 to 9 -move 1 from 3 to 9 -move 1 from 2 to 4 -move 1 from 9 to 6 -move 5 from 1 to 9 -move 1 from 4 to 9 -move 2 from 9 to 1 -move 8 from 6 to 7 -move 4 from 9 to 7 -move 2 from 5 to 2 -move 2 from 1 to 9 -move 14 from 7 to 4 -move 22 from 7 to 2 -move 2 from 7 to 4 -move 3 from 7 to 5 -move 9 from 4 to 7 -move 6 from 2 to 4 -move 8 from 4 to 3 -move 14 from 2 to 9 -move 2 from 3 to 9 -move 3 from 2 to 9 -move 4 from 4 to 2 -move 1 from 4 to 5 -move 1 from 1 to 4 -move 5 from 7 to 8 -move 1 from 1 to 3 -move 4 from 5 to 2 -move 6 from 3 to 9 -move 1 from 3 to 4 -move 4 from 8 to 9 -move 2 from 4 to 6 -move 4 from 5 to 3 -move 1 from 7 to 6 -move 1 from 8 to 5 -move 3 from 3 to 1 -move 33 from 9 to 5 -move 5 from 2 to 1 -move 1 from 3 to 5 -move 1 from 7 to 6 -move 18 from 5 to 1 -move 1 from 2 to 8 -move 6 from 5 to 4 -move 1 from 8 to 7 -move 2 from 4 to 1 -move 4 from 1 to 2 -move 19 from 1 to 2 -move 4 from 6 to 8 -move 4 from 1 to 8 -move 14 from 2 to 9 -move 5 from 2 to 4 -move 1 from 8 to 2 -move 8 from 2 to 5 -move 5 from 8 to 4 -move 4 from 9 to 7 -move 1 from 8 to 1 -move 16 from 5 to 4 -move 15 from 4 to 5 -move 1 from 9 to 5 -move 5 from 7 to 6 -move 2 from 7 to 6 -move 1 from 1 to 9 -move 7 from 6 to 7 -move 1 from 8 to 5 -move 1 from 1 to 9 -move 12 from 5 to 7 -move 7 from 5 to 9 -move 12 from 7 to 2 -move 1 from 7 to 4 -move 7 from 4 to 7 -move 2 from 9 to 4 -move 5 from 4 to 9 -move 8 from 2 to 3 -move 4 from 2 to 4 -move 9 from 4 to 8 -move 6 from 3 to 5 -move 8 from 7 to 3 -move 1 from 4 to 3 -move 7 from 8 to 9 -move 4 from 5 to 4 -move 6 from 3 to 1 -move 4 from 3 to 4 -move 1 from 3 to 6 -move 6 from 4 to 9 -move 1 from 6 to 5 -move 17 from 9 to 4 -move 3 from 7 to 3 -move 1 from 7 to 9 -move 2 from 5 to 3 -move 2 from 1 to 3 -move 2 from 8 to 9 -move 1 from 5 to 1 -move 14 from 4 to 5 -move 2 from 3 to 2 -move 1 from 7 to 6 -move 10 from 9 to 4 -move 12 from 9 to 4 -move 9 from 4 to 5 -move 1 from 2 to 9 -move 13 from 5 to 9 -move 2 from 5 to 1 -move 1 from 2 to 9 -move 3 from 4 to 2 -move 12 from 4 to 7 -move 8 from 5 to 7 -move 1 from 1 to 9 -move 1 from 6 to 4 -move 1 from 5 to 4 -move 1 from 4 to 8 -move 5 from 3 to 4 -move 10 from 9 to 6 -move 3 from 6 to 2 -move 7 from 6 to 5 -move 6 from 5 to 4 -move 1 from 8 to 5 -move 1 from 1 to 4 -move 2 from 7 to 2 -move 5 from 4 to 9 -move 2 from 5 to 8 -move 1 from 1 to 3 -move 2 from 1 to 7 -move 6 from 7 to 9 -move 9 from 9 to 8 -move 1 from 1 to 3 -move 4 from 2 to 7 -move 11 from 7 to 3 -move 11 from 8 to 6 -move 7 from 3 to 1 -move 4 from 7 to 2 -move 3 from 2 to 9 -move 8 from 1 to 5 -move 2 from 7 to 5 -move 2 from 2 to 9 -move 2 from 3 to 9 -move 11 from 4 to 7 -move 7 from 9 to 5 -move 6 from 6 to 5 -move 2 from 2 to 9 -move 1 from 2 to 3 -move 6 from 9 to 4 -move 3 from 9 to 1 -move 4 from 3 to 5 -move 6 from 7 to 1 -move 2 from 6 to 3 -move 2 from 9 to 2 -move 3 from 3 to 2 -move 3 from 6 to 8 -move 2 from 7 to 5 -move 20 from 5 to 6 -move 8 from 5 to 1 -move 1 from 5 to 9 -move 2 from 8 to 4 -move 1 from 8 to 7 -move 16 from 1 to 8 -move 8 from 8 to 9 -move 4 from 2 to 4 -move 1 from 1 to 5 -move 1 from 5 to 4 -move 3 from 8 to 4 -move 14 from 4 to 6 -move 5 from 8 to 7 -move 6 from 7 to 8 -move 29 from 6 to 2 -move 3 from 9 to 8 -move 21 from 2 to 3 -move 1 from 8 to 3 -move 6 from 9 to 4 -move 8 from 3 to 5 -move 7 from 8 to 4 -move 7 from 3 to 9 -move 3 from 7 to 2 -move 12 from 4 to 8 -move 2 from 3 to 1 -move 2 from 9 to 1 -move 1 from 6 to 7 -move 1 from 7 to 6 -move 1 from 6 to 3 -move 3 from 1 to 8 -move 2 from 4 to 1 -move 4 from 6 to 1 -move 5 from 2 to 7 -move 1 from 1 to 2 -move 5 from 1 to 2 -move 2 from 8 to 1 -move 1 from 4 to 5 -move 9 from 8 to 4 -move 3 from 7 to 9 -move 7 from 5 to 7 -move 2 from 5 to 9 -move 4 from 9 to 2 -move 3 from 3 to 2 -move 5 from 2 to 7 -move 2 from 8 to 2 -move 2 from 7 to 3 -move 1 from 8 to 6 -move 2 from 1 to 2 -move 1 from 6 to 7 -move 1 from 8 to 1 -move 12 from 7 to 1 -move 5 from 2 to 7 -move 7 from 4 to 2 -move 2 from 4 to 1 -move 5 from 3 to 8 -move 7 from 1 to 9 -move 4 from 7 to 1 -move 7 from 1 to 5 -move 12 from 9 to 2 -move 27 from 2 to 4 -move 3 from 8 to 9 -move 6 from 2 to 5 -move 6 from 1 to 8 -move 1 from 7 to 6 -move 9 from 5 to 2 -move 3 from 9 to 2 -move 13 from 4 to 5 -move 10 from 2 to 7 -move 1 from 9 to 8 -move 11 from 5 to 7 -move 1 from 8 to 7 -move 1 from 2 to 6 -move 13 from 4 to 3 -move 23 from 7 to 4 -move 1 from 6 to 9 -move 1 from 2 to 4 -move 7 from 3 to 5 -move 1 from 9 to 8 -move 19 from 4 to 1 -move 2 from 4 to 1 -move 1 from 7 to 6 -move 1 from 4 to 5 -move 1 from 5 to 7 -move 11 from 5 to 1 -move 2 from 5 to 4 -move 2 from 6 to 9 -move 3 from 8 to 2 -move 2 from 8 to 1 -move 3 from 2 to 1 -move 1 from 9 to 5 -move 6 from 1 to 3 -move 1 from 9 to 7 -move 2 from 7 to 5 -move 2 from 8 to 6 -move 1 from 3 to 2 -move 2 from 8 to 5 -move 1 from 2 to 1 -move 3 from 4 to 1 -move 3 from 5 to 1 -move 2 from 5 to 1 -move 2 from 6 to 9 -move 1 from 9 to 6 -move 1 from 4 to 5 -move 1 from 9 to 8 -move 1 from 8 to 6 -move 8 from 1 to 6 -move 7 from 1 to 8 -move 9 from 1 to 6 -move 1 from 5 to 3 -move 3 from 8 to 4 -move 11 from 3 to 4 -move 1 from 3 to 6 -move 10 from 6 to 8 -move 13 from 1 to 6 -move 3 from 4 to 5 -move 7 from 8 to 6 -move 3 from 8 to 5 -move 6 from 5 to 3 -move 22 from 6 to 9 -move 4 from 3 to 6 -move 4 from 9 to 5 -move 1 from 1 to 5 -move 2 from 3 to 4 -move 2 from 1 to 5 -move 1 from 9 to 2 -move 5 from 8 to 3 -move 2 from 9 to 2 -move 11 from 6 to 9 -move 3 from 2 to 7 -move 1 from 6 to 7 -move 12 from 9 to 8 -move 4 from 7 to 1 -move 12 from 4 to 8 -move 2 from 4 to 7 -move 1 from 1 to 8 -move 1 from 5 to 1 -move 19 from 8 to 4 -move 4 from 5 to 1 -move 1 from 7 to 4 -move 1 from 7 to 1 -move 3 from 3 to 4 -move 2 from 8 to 4 -move 1 from 5 to 7 -move 1 from 7 to 9 -move 8 from 1 to 8 -move 1 from 1 to 4 -move 1 from 3 to 9 -move 1 from 3 to 5 -move 1 from 5 to 2 -move 7 from 8 to 7 -move 16 from 4 to 7 -move 1 from 7 to 4 -move 3 from 8 to 2 -move 14 from 7 to 4 -move 1 from 5 to 8 -move 5 from 7 to 5 -move 16 from 4 to 5 -move 3 from 5 to 4 -move 3 from 2 to 1 -move 1 from 7 to 9 -move 11 from 4 to 2 -move 3 from 8 to 6 -move 2 from 1 to 8 -move 1 from 4 to 9 -move 18 from 5 to 1 -move 1 from 8 to 7 -move 3 from 7 to 9 -move 18 from 9 to 3 -move 3 from 6 to 9 -move 7 from 1 to 6 -move 1 from 8 to 4 -move 1 from 4 to 9 -move 3 from 6 to 4 -move 5 from 9 to 2 -move 2 from 4 to 7 -move 7 from 2 to 8 -move 1 from 7 to 3 -move 2 from 6 to 8 -move 1 from 9 to 5 -move 1 from 6 to 8 -move 1 from 4 to 8 -move 1 from 5 to 3 -move 1 from 7 to 5 -move 8 from 8 to 7 -move 10 from 2 to 6 -move 1 from 9 to 3 -move 6 from 6 to 2 -move 5 from 6 to 2 -move 7 from 2 to 7 -move 12 from 1 to 6 -move 2 from 2 to 1 -move 1 from 2 to 5 -move 4 from 7 to 6 -move 12 from 3 to 1 -move 2 from 7 to 2 -move 9 from 3 to 8 -move 1 from 2 to 6 -move 1 from 5 to 4 -move 9 from 6 to 5 -move 1 from 7 to 6 -move 1 from 4 to 9 -move 9 from 6 to 7 -move 7 from 8 to 3 -move 6 from 3 to 1 -move 4 from 8 to 3 -move 5 from 3 to 1 -move 1 from 9 to 8 -move 2 from 8 to 9 -move 5 from 5 to 7 -move 14 from 7 to 8 -move 1 from 9 to 4 -move 2 from 2 to 1 -move 3 from 5 to 3 -move 2 from 3 to 1 -move 1 from 4 to 6 -move 6 from 8 to 6 -move 6 from 8 to 3 -move 3 from 6 to 1 -move 2 from 8 to 9 -move 19 from 1 to 6 -move 3 from 9 to 3 -move 6 from 3 to 4 -move 6 from 6 to 2 -move 4 from 3 to 9 -move 1 from 7 to 9 -move 2 from 5 to 7 -move 5 from 9 to 6 -move 6 from 7 to 2 -move 11 from 2 to 5 -move 2 from 7 to 4 -move 4 from 4 to 3 -move 2 from 4 to 8 -move 12 from 1 to 2 -move 1 from 8 to 2 -move 8 from 5 to 7 -move 2 from 4 to 9 -move 2 from 7 to 1 -move 4 from 2 to 3 -move 1 from 8 to 6 -move 1 from 1 to 5 -move 2 from 9 to 1 -move 2 from 7 to 3 -move 2 from 5 to 2 -move 1 from 5 to 7 -move 2 from 7 to 8 -move 1 from 5 to 7 -move 5 from 3 to 4 -move 3 from 1 to 7 -move 1 from 2 to 4 -move 15 from 6 to 1 -move 4 from 4 to 1 -move 4 from 2 to 3 -move 8 from 3 to 2 -move 5 from 2 to 4 -move 1 from 8 to 6 -move 1 from 8 to 9 -move 1 from 3 to 1 -move 3 from 7 to 3 -move 5 from 7 to 6 -move 4 from 2 to 9 -move 6 from 2 to 6 -move 4 from 9 to 6 -move 12 from 1 to 5 -move 6 from 4 to 1 -move 1 from 3 to 6 -move 4 from 5 to 8 -move 7 from 5 to 3 -move 3 from 8 to 2 -move 1 from 2 to 3 -move 1 from 9 to 5 -move 1 from 4 to 5 -move 1 from 8 to 5 -move 8 from 6 to 9 -move 10 from 1 to 4 -move 3 from 6 to 1 -move 9 from 3 to 6 -move 1 from 3 to 8 -move 1 from 2 to 4 -move 6 from 9 to 1 -move 1 from 1 to 4 -move 10 from 1 to 6 -move 1 from 8 to 6 -move 13 from 6 to 7 -move 1 from 2 to 1 -move 1 from 9 to 6 -move 9 from 7 to 5 -move 1 from 9 to 4 -move 3 from 7 to 1 -move 3 from 5 to 6 -move 10 from 4 to 7 -move 5 from 6 to 5 -move 3 from 4 to 5 -move 13 from 6 to 9 -move 7 from 5 to 3 -move 6 from 3 to 2 -move 5 from 6 to 4 -move 4 from 2 to 8 diff --git a/2022/day5/ref.txt b/2022/day5/ref.txt deleted file mode 100644 index 84933bb..0000000 --- a/2022/day5/ref.txt +++ /dev/null @@ -1,9 +0,0 @@ - [D] -[N] [C] -[Z] [M] [P] - 1 2 3 - -move 1 from 2 to 1 -move 3 from 1 to 3 -move 2 from 2 to 1 -move 1 from 1 to 2 diff --git a/2022/day5/ref_mod.txt b/2022/day5/ref_mod.txt deleted file mode 100644 index baec122..0000000 --- a/2022/day5/ref_mod.txt +++ /dev/null @@ -1,8 +0,0 @@ -ZN -MCD -P - -move 1 from 2 to 1 -move 3 from 1 to 3 -move 2 from 2 to 1 -move 1 from 1 to 2 diff --git a/2022/day6/asd.py b/2022/day6/asd.py deleted file mode 100755 index c998af3..0000000 --- a/2022/day6/asd.py +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env python3 - -# import numpy as np -from functools import reduce -from re import findall -from copy import deepcopy - - -# filename = "ref.txt" -filename = "pzl.txt" - -res1 = 0 -res2 = 0 - -def solve(n): - f = open(filename) - for line in f: - line = line.strip() - for a in range(len(line)-n): - s = set() - for i in range(0,n): - s.add(line[a+i]) - - if len(s) == n: - # print(s) - res = a + n - return res - f.close() - -res1 = solve(4) -res2 = solve(14) - -print('res1:', res1) -print('res2:', res2) - diff --git a/2022/day6/day6.c b/2022/day6/day6.c deleted file mode 100644 index 13d5c04..0000000 --- a/2022/day6/day6.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include -#include -#include "../util.h" - -// char filename[] = "ref.txt"; -char filename[] = "pzl.txt"; - -#define BUF_LEN 10000 -u8 buf[BUF_LEN]; -#define NAH_LEN 26 -u8 not_a_hashmap[NAH_LEN]; - -s32 solve(u32 n) -{ - int fd = open(filename, O_RDONLY); - u32 data_len = read(fd, buf, LEN(buf)); - if (data_len == LEN(buf)) { - printf("buffer probably not big enough\n"); - exit(1); - } - - for (u32 i = n; i < data_len; ++i) { - memset(not_a_hashmap, 0x00, LEN(not_a_hashmap)); - - for (u32 j = 1; j <= n; ++j) { - u32 index = (buf[i-j]-'a'); - if (index >= NAH_LEN) { - printf("nah too small\n"); - exit(1); - } - not_a_hashmap[index] = 1; - } - - u32 sum = 0; - for (u32 j = 0; j < NAH_LEN; ++j) { - sum += not_a_hashmap[j]; - } - if (sum == n) { - return i; - } - - } - return -1; -} - -int main() -{ - printf("res1: %d\n", solve(4)); - printf("res2: %d\n", solve(14)); -} - diff --git a/2022/day6/pzl.txt b/2022/day6/pzl.txt deleted file mode 100644 index 1db72f1..0000000 --- a/2022/day6/pzl.txt +++ /dev/null @@ -1 +0,0 @@ -cdhccdbdggfjjgssjzjzggjnjpnpbbzbnzzflfjfnfrrpvrvbrvvrvggvlvnnbrnrcncsnndbndbnndbdndfdrdvrvvndvvbggnrrnbrnntffgttwzwnnmvmcvvhsstzzlnlwlttbzzpnpmnnjvjnntmnmfftwwrfwrwswmmfrrfrrgbrbffwvvshvhrhmhththbbmqbmqqlslhssrmmqdmmjtmtmjtmjtttnwnvwvqwqjjnbbbdbqbnbpnbnllglcglcgcdczdznnqhhfthtmtlldqlqrrmddrldlzdllvddjcddqfqbqsbqqnllwppqpqzzrbbdppzsppjdpdqpdqdfqfrrwbwrwwqcqcsqsvvpbvbbztzptzzpccdtdhdffvqvcvzzmwzwddjfdffplplqlvlmmmvggpmpvpddpbptplpvlplvpvvnrvnnbqqqjhhwfhwfhwhqhmmpphqpqvppfzpzjzddgzzwffjmjggwhwwnnmlmpmmhcmcpcrcddvzvpzzwnznfznffgdgvddvtvgvsvdsdbbjnjtntbnttgbbbvgvgrgrzrvzrzddlsddcndcnnfqnnmpmlppdlplzplzpzgzmzmddlvlnnbttbwwhbhdhfdfssjppmcpplpdddnpdnnljlwjljsjnjhnhvhvqqsffrbbdttjdjndjdwwsfspffnhfhhlvhvmmqjmmwzwszwwvdvpdvdbdtdsdtsshvvmtvmtmctclchccrllznzfffpjjvhhdmhhvphpghgsgmmhlhnlnmnlnslnlgngznnsqnqddllpwllmzmjmttptfpplglqlgglgqqptqqmvmtmjmddcchbblltslsvsmvmgghmmccnzcztczzmnmttrdrvvcvzvvzllbhllnldndbbqffbbgtgddbtdbbzttdptpccjnjppbllbzlblrlcllhrrhqhgqqbcqcvcdvvnnzfzvzttrptrrwmrmlrlddvttdbtdbdcdvccwlcwwhphmppwfppclpcllgqgnghhvfflfggrzrcchfhhrdhrdhdnhnmmhjjwqjjpmmwvmmdnmnzzqmqwwmtthtdhtthnnqhqdhqqndqqwffsbspbptpmmndnllsmmdhmhfhnhjhghshlslppbgpgngddlsljsjmmzqzhhswhssfzssfqqcmqcmqcmmqggjcjvvgssrccwddmpmwwdfdpdbdpdwdvvqfvfrvvvsbvbhvvmqqcjqqvzqzppncnhhqnnpgplpqqpjpbblpbbbshsthhvfhfmmqzmmznnvrvqrrwdrdlrlwlttzqttjvttqltqqnfqqqwjqwwqttfstftjffsqqnhhnsnqqhggbsgghfgglslmssqlqhlhthqhccdsspsnssshbbnmngnnhllwclcffqllsrszrssnqsqvqjvjcvcttqgqbqmmfqfsqfsqswwvcvffndnfdfvfcvvggsmsfmfwfpfwwzhznntgtlglmmlfmllwrlrwwhcchqchhznzjjcdjdbjjhcjcscwwlnnsgngqqtgqgngnwgnnhqnnhchmchhtchcnclcmccgffbmmzvvrnngwwvddzccnjntjtwjwwztwtmtddjddpsptpbpbvvbwwnlnmndmnmdnnclnnbsbddpfdfvvjtjqqtqqqzjzlzqllzzwwlppvfffpcffffprrncnnzsnznhhwvvqhqphpjjgqqvnnmdmqqglqlblgglrlsspscsjjpvpbpjjwccslsppdjpdjjwvjjmhjhtjjwqqbqjqzjqzqpqbbswwlssqzssbjjpjqjbbjcjpjspjssjjzhhhnjhnhbnhhwzhzwlcshqlqpzgggzmcwntcwmfgtrwwjdpnbdqqcgnzgbdrzdmpwgvtvqffqbpvjpjrcfswffllnvnwvhclpjcwqwgnwqwvwsfgflrgzzsswffwjdjgvdvlgmczcbthwbvhggwzwlzfmhvwvjpbpnhcczbgfhhgghsmjwnvnsvnvmqwstrgnncwbqgbqpgdngllcqnzgwswpgtwzgqzggnzsdgltrlqfctqfvlzdswccfpdtjbfnrbqsmpjclnplbmqbmvwbzzdflwbqrljvzjpcrmnqsmrpqlmfsgcmthqpwgwzvmrjnhqczljcpnzjbwzrhjrzmcqpmlbzhgmqrlzsjbjsvcmcngptzlrthwsrjrlmsrgjlzrvpzwmprwnpgvjtspsppfvwfwcvbnqcwwmzlbqthqmbnbmnsnzgsbbnqtrvhlzjhphclpjzrdblszrnftqgwwrhpznhjhgrncvsvrmtmmgssvzddjfrnrzhbrqrfffjvzrqdnrdbvjwgrvlcpbncfgczlwdggsjmwzhndcdbggjvwfljctjnsjwczwfdrfttbhnlswfdbpcnwpspdhnzwqbgdswwpccbpfpgmfmvvwpzbzqsbbjbfnhjpszcbnrdplmwtdjtpcsztdjcmczltnstzwlcdbtdhsdgsgtlvdfqggfmmrppjfrmtfwhpbjsppszjbhmthndqmvbmqcbtqsltwrcvlvblwspbgspjftwllzcmnsrvjpnstzrfmcflnhppsdfggwbzvnvlnjqlfvrlplnzvfrwvgcgqvnpfgtgchctvhcplclzmfpwgnfhqjgglfmsgpflqcpqmbbhwnvvdllcnhblpnndbdtmgvfbvvvlvzlrpfqmnvzbfrssjtlgcjtpfznshvdjrjnfshfcgvwcdbqlfsbhnzwmsgwhpbzttgfjsqgwvdmbdwjljhsndrbbzfrsqjhcbldzqpmtnfvnmzltjcrvrltwshnhqlnclmcnfpbzstsczlqmfmdftzfbcwqnhqppzfbzpbfjhmmtvtbmblmtshsbtjlvsqvmbmgstbbdmhprqmtpfdqqntmnlbmpsmwfgrvstjcllhwpcddnljdjvdrbwqmgrjnldpgnrhgqpzqrvwzsngrgnbpjnsffzjsbdptwnnfcqlscfhvggpfstsnqzcjbqqhgdpqsrlprcppgqmddpqpbnvgwtdqsbbgtvsqfrtqfsbdzhsztfmvwrrsjcbtcjgzrnhnpgldtwbwgmwbgmjjzsbbzlhgmlczrhjwtzrgwscmjvlstprldhglvftqzbtrmcwzgtjppbnjcdvjvcwvdbngnbrmjvvtnwdqfclbpgzcfnnnlnngtgmhsqsdmbjctjzjpbrwrhscqshmmwbtfnzjgsrjlnqqdsvdrjdzsdprphnfmwwcztqfcrjvnfhlvnqwbrfmcvhrbtgvcrqjjfcnzwmlfzzdcbbzvphhmsdltwjfdcgthpvszqzjdbfwrpvhbjqdhrscnvjhjvvcldnhgjclmzpbrrwnscgpcqrpdgsnjnwhctcdqgwqbrcszfzpmtdrhlftvwffdjrtznqrppqbdbwvzmtlpvsqqpcngjgfdrpngnspdwhhvlhqrtsphgqrlldggtrvqsprbfdmrpgcmqphdvjfmhlznpgtqlvtnllcdhzhhtjjlfvdlwhcrfmjmdjtmbllvsfgvmfqtqlmrlrjmqptszvjdpzhphppljnpjdjpwlrclssgdnstchhwhpflmlrtdqvqbbljrmnflrltzpqmgqfrczvfzrpfsrwsgpljvjfjdjdvjchcdmmtjgghqspwzdtwqgtvmnrrbfbgnhcrvnzznrdlqmgmdwmpwzlqdjtvpszwnjtjtmjqvfwvftlhgpvgzswpbvbllfcwpjnsmbhzrdpdzjsrpnhphdcqjmzvvhrjcwhgwjwcshqwzpbpmfnjjvqcjrqmvsrdrtdvfhwhrbpvrqrsfzflslqtdrtcsggtzmpvbszdgttlvpwwltvpcwqmnwqtpcfzgsvsmncvpqqdrljfwtncplmjlpfcnqmcctwzhrbmrfwvsrjsbnhjrjmrnbmmnnhsvlltwzzhsgwppnlmljgpcsmpchdjdzpgvrtwsfzffhnlbfmrldzbshvpqhnfzpwnvczgfvhbntcpztwqlfgtsmdhvcrgjhvqrhbpvbpzcpbgzrcfjztbnfjptbzfpztwprwf diff --git a/2022/day6/ref.txt b/2022/day6/ref.txt deleted file mode 100644 index 7980a82..0000000 --- a/2022/day6/ref.txt +++ /dev/null @@ -1 +0,0 @@ -mjqjpqmgbljsphdztnvjfqwrcgsmlb diff --git a/2022/day7/asd.py b/2022/day7/asd.py deleted file mode 100755 index 18a2e0e..0000000 --- a/2022/day7/asd.py +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env python3 - -# import numpy as np -from functools import reduce -from re import findall -from copy import deepcopy -import sys - -# filename = "ref.txt" -filename = "pzl.txt" -data = open(filename).read() -lines = [line for line in data.rstrip('\n').split('\n')] - -res1 = 0 -res2 = 0 - -pwd = '/' -fs = {'files':0} - -for line in lines: - - l = line.split(' ') - - if l[0] == '$': - if l[1] == 'cd': - if l[2] == '/': - pwd = '/' - elif l[2] == '..': - pwd = pwd[: -1 -pwd[:-1][::-1].find('/') ] - else: - pwd = pwd + l[2] + '/' - - # print(line) - # print(pwd) - - p = pwd.strip('/').split('/') - if p != ['']: - fsp = fs - for i in p: - if i not in fsp.keys(): - fsp[i] = {'files':0} - fsp = fsp[i] - - elif l[1] == 'ls': - continue - - else: - if l[0] == 'dir': - continue - size, name = int(l[0]), l[1] - - p = pwd.strip('/').split('/') - if p != ['']: - fsp = fs - for i in p: - fsp = fsp[i] - fsp['files'] += size - else: - fs['files'] += size - - -def print_fs(subfs, depth = 0): - for d in subfs: - if d == 'files': - print(depth * ' ', d, ' ', subfs[d], sep = '') - else: - print(depth * ' ', d, sep = '') - print_fs(subfs[d], depth+1) - -def rec_fs(subfs): - size = 0 - for d in subfs: - if d == 'files': - size += subfs[d] - global sizes_one - sizes_one.append(subfs[d]) - # print(d, size) - else: - size += rec_fs(subfs[d]) - - global sizes_cumulative - sizes_cumulative.append(size) - - return size - -sizes_one = list() -sizes_cumulative = list() - -# print(fs) -# print_fs(fs) - -rec_fs(fs) - -total_size = 70000000 -needed_size = 30000000 -used_size = sum(sizes_one) -delete_size = needed_size -(total_size - used_size) -total_size - used_size - -res1 = sum(filter(lambda x: x <= 100000, sizes_cumulative)) -res2 = list(filter(lambda x: x > delete_size, sorted(sizes_cumulative)))[0] - -print('res1:', res1) -print('res2:', res2) - diff --git a/2022/day7/pzl.txt b/2022/day7/pzl.txt deleted file mode 100644 index c988c21..0000000 --- a/2022/day7/pzl.txt +++ /dev/null @@ -1,1013 +0,0 @@ -$ cd / -$ ls -dir jmtrrrp -dir jssnn -dir lbrmb -11968 pcccp -$ cd jmtrrrp -$ ls -77968 chq.jvb -dir fmgsql -$ cd fmgsql -$ ls -dir dbnsfp -dir vvp -$ cd dbnsfp -$ ls -51021 crlq.lrj -186829 dhcrzvbr.wmn -16232 fvhn.fqm -54150 qpbqqj.rpg -$ cd .. -$ cd vvp -$ ls -179105 rrcsndz.tzp -$ cd .. -$ cd .. -$ cd .. -$ cd jssnn -$ ls -dir bphfqs -dir dbnsfp -dir pcccp -dir snr -dir zjbvwsnv -$ cd bphfqs -$ ls -110077 dhcrzvbr.wmn -$ cd .. -$ cd dbnsfp -$ ls -dir hgvh -dir jtqdcmsz -154197 rrcsndz.tzp -$ cd hgvh -$ ls -dir qjnbg -$ cd qjnbg -$ ls -dir bqzfpr -$ cd bqzfpr -$ ls -124394 wjsbsp -$ cd .. -$ cd .. -$ cd .. -$ cd jtqdcmsz -$ ls -275597 dbnsfp.fpg -$ cd .. -$ cd .. -$ cd pcccp -$ ls -dir cnbd -85621 cqzvwl -dir dbnsfp -114355 hbhp.cfv -dir mcgq -dir pcccp -dir qpbqqj -224038 rrcsndz.tzp -dir zcsm -27570 zjbvwsnv.fjt -$ cd cnbd -$ ls -dir jrbz -dir pphv -$ cd jrbz -$ ls -dir dwvlwfq -$ cd dwvlwfq -$ ls -32237 fwclr.rnb -$ cd .. -$ cd .. -$ cd pphv -$ ls -180370 dhcrzvbr.wmn -50154 dzvwdwl.gbt -123965 mlsv.hlw -163116 wnhtwr.mwl -$ cd .. -$ cd .. -$ cd dbnsfp -$ ls -252181 btv.mpv -dir hwncj -dir pcccp -$ cd hwncj -$ ls -51410 jbd.fcm -$ cd .. -$ cd pcccp -$ ls -258123 chq.jvb -$ cd .. -$ cd .. -$ cd mcgq -$ ls -206506 qpbqqj.bbb -$ cd .. -$ cd pcccp -$ ls -193219 ddhtnql.hmb -134114 hjbpzqzb.rwn -108927 lznndn.nqd -73241 ncdrv -$ cd .. -$ cd qpbqqj -$ ls -dir crdt -dir tgchdnc -$ cd crdt -$ ls -205710 chq.jvb -$ cd .. -$ cd tgchdnc -$ ls -dir bdw -dir dpl -dir jssnn -dir pcccp -dir plpzbm -$ cd bdw -$ ls -211300 dbnsfp.tjm -$ cd .. -$ cd dpl -$ ls -287744 rsbjqwm -$ cd .. -$ cd jssnn -$ ls -dir jssnn -$ cd jssnn -$ ls -9644 hmjhshg.vbv -$ cd .. -$ cd .. -$ cd pcccp -$ ls -dir jssnn -85888 pcccp.hdj -dir qpbqqj -dir rmscmwtv -$ cd jssnn -$ ls -129698 crlq.lrj -7499 dhcrzvbr.wmn -283607 qpbqqj.djr -234874 wqnrhll -$ cd .. -$ cd qpbqqj -$ ls -184229 qqpb.ftd -$ cd .. -$ cd rmscmwtv -$ ls -188048 dhcrzvbr.wmn -dir jwtpgbnt -$ cd jwtpgbnt -$ ls -209946 hgg -$ cd .. -$ cd .. -$ cd .. -$ cd plpzbm -$ ls -32627 tlb.qmc -$ cd .. -$ cd .. -$ cd .. -$ cd zcsm -$ ls -dir lczflft -dir zjbvwsnv -dir zmh -$ cd lczflft -$ ls -40043 dzgnvlw.scr -dir lrnb -$ cd lrnb -$ ls -109881 bjpbs -dir jssnn -46901 npmw -$ cd jssnn -$ ls -9216 sgrp -$ cd .. -$ cd .. -$ cd .. -$ cd zjbvwsnv -$ ls -214676 jssnn.hgn -$ cd .. -$ cd zmh -$ ls -dir jdt -dir rggpltr -$ cd jdt -$ ls -147387 jhhsv -90052 jssnn.wns -53105 qpbqqj.dzq -$ cd .. -$ cd rggpltr -$ ls -121454 dbnsfp.dzt -dir gcc -$ cd gcc -$ ls -dir zbqwl -dir zjbvwsnv -$ cd zbqwl -$ ls -260297 pcccp.jrw -$ cd .. -$ cd zjbvwsnv -$ ls -248709 pcccp.tph -$ cd .. -$ cd .. -$ cd .. -$ cd .. -$ cd .. -$ cd .. -$ cd snr -$ ls -152569 chq.jvb -1437 crlq.lrj -$ cd .. -$ cd zjbvwsnv -$ ls -dir cqhb -53235 ghhtl.bhv -199640 npcfdw -136346 qpbqqj.lmv -dir zjbvwsnv -$ cd cqhb -$ ls -24712 sqqf -$ cd .. -$ cd zjbvwsnv -$ ls -dir gzqg -dir hfbfvn -dir srsphr -dir vgvdcvc -$ cd gzqg -$ ls -dir jjw -$ cd jjw -$ ls -240052 zdcjjz.pmg -$ cd .. -$ cd .. -$ cd hfbfvn -$ ls -278190 bfgndw.pvf -$ cd .. -$ cd srsphr -$ ls -42591 zjbvwsnv.hgh -$ cd .. -$ cd vgvdcvc -$ ls -120322 rrcsndz.tzp -$ cd .. -$ cd .. -$ cd .. -$ cd .. -$ cd lbrmb -$ ls -dir bjhpdj -42241 crlq.lrj -dir dbnsfp -244610 dhcrzvbr.wmn -dir hppb -dir mcnzs -dir npntsr -13625 tpjpcsgp.dlz -219424 vvpbt.zvf -dir zjbvwsnv -191467 zjbvwsnv.htn -$ cd bjhpdj -$ ls -dir bqjvst -204722 dbnsfp -dir dhltrqqq -226082 dmdqcjp -dir fcqwgzp -dir jssnn -6453 jssnn.ndh -23799 jssnn.zqn -dir nwglfhpl -dir pcccp -dir pdnj -269246 shzqns.nws -dir sjstqlcb -dir zssln -$ cd bqjvst -$ ls -202793 dbnsfp.pjj -259783 jssnn -dir rbvbhnvs -30683 rvddnjmb.tlz -dir tzhslnv -$ cd rbvbhnvs -$ ls -86934 vrtrf.htt -$ cd .. -$ cd tzhslnv -$ ls -76278 mghcwdlr.tsc -$ cd .. -$ cd .. -$ cd dhltrqqq -$ ls -dir mfd -dir pcccp -dir smmb -251164 wsdnsgtt.lhr -191876 zvr.bbz -$ cd mfd -$ ls -51017 crlq.lrj -99213 rjtbnnnq.hgd -$ cd .. -$ cd pcccp -$ ls -160487 dhcrzvbr.wmn -dir nhdrnthj -dir qpbqqj -$ cd nhdrnthj -$ ls -181291 bbn.wtm -186551 fnw.tnn -23622 rrcsndz.tzp -dir zjbvwsnv -$ cd zjbvwsnv -$ ls -227547 dhcrzvbr.wmn -$ cd .. -$ cd .. -$ cd qpbqqj -$ ls -212353 crlq.lrj -170195 dhcrzvbr.wmn -dir ttvp -$ cd ttvp -$ ls -185994 tgjcfgjv -$ cd .. -$ cd .. -$ cd .. -$ cd smmb -$ ls -dir dbnsfp -85354 dbnsfp.zpn -80665 dfmmjbm.rnr -135989 dhcrzvbr.wmn -93718 lrbzr.nfs -dir mjpfnfns -dir nsdpfnhb -dir pmnssvd -32270 qpbqqj.vtd -$ cd dbnsfp -$ ls -31796 gzs.rgv -64506 vbjncw.bpz -181659 vjlfrdp.tqh -$ cd .. -$ cd mjpfnfns -$ ls -231611 chq.jvb -17518 cmnlrzq.hvh -144795 dbnsfp -162194 jssnn.wjz -29305 vdqnlw.fzf -$ cd .. -$ cd nsdpfnhb -$ ls -281844 chq.jvb -$ cd .. -$ cd pmnssvd -$ ls -165816 dfvl.czb -144561 gbn -150785 lnzdwrmb -111214 rrcsndz.tzp -164156 tzgdb.hht -$ cd .. -$ cd .. -$ cd .. -$ cd fcqwgzp -$ ls -199161 dhcrzvbr.wmn -34251 rrcsndz.tzp -198345 vjlfrdp.tqh -167001 zjbvwsnv.bsd -$ cd .. -$ cd jssnn -$ ls -dir ccblfvl -103180 dhcrzvbr.wmn -dir prw -dir tzqfn -dir zjbvwsnv -166467 zjbvwsnv.tdt -$ cd ccblfvl -$ ls -159752 crlq.lrj -20805 jssnn.dvb -243040 lct.zll -27492 qbh -27174 vjlfrdp.tqh -dir zvfwq -$ cd zvfwq -$ ls -135126 chq.jvb -41664 gphw.vzd -dir hmrdghbr -dir jssnn -dir qzzb -dir tmdlcv -$ cd hmrdghbr -$ ls -dir jvgpwrbs -$ cd jvgpwrbs -$ ls -dir wzdv -$ cd wzdv -$ ls -26834 qpbqqj.njf -$ cd .. -$ cd .. -$ cd .. -$ cd jssnn -$ ls -90199 jqqmqddf.qnz -$ cd .. -$ cd qzzb -$ ls -dir mgpql -dir src -dir zvdgc -$ cd mgpql -$ ls -141852 qpbqqj -$ cd .. -$ cd src -$ ls -204425 lqmcbndm.jrj -75571 qsbrsv.jcm -$ cd .. -$ cd zvdgc -$ ls -268742 ffjmrmmz.lhg -18385 rvmp.hjv -$ cd .. -$ cd .. -$ cd tmdlcv -$ ls -182587 sfwvjrj.mzl -$ cd .. -$ cd .. -$ cd .. -$ cd prw -$ ls -207429 dbnsfp.rqf -dir ptgn -dir pzgpqp -252902 rbt -169694 trg.rsh -$ cd ptgn -$ ls -dir jssnn -dir qpbqqj -dir rpd -$ cd jssnn -$ ls -189316 dbnsfp.bqc -$ cd .. -$ cd qpbqqj -$ ls -167937 zjbvwsnv.bhz -$ cd .. -$ cd rpd -$ ls -8775 crlq.lrj -$ cd .. -$ cd .. -$ cd pzgpqp -$ ls -dir pcccp -$ cd pcccp -$ ls -51496 pcccp -$ cd .. -$ cd .. -$ cd .. -$ cd tzqfn -$ ls -dir cbpfvdp -285700 crlq.lrj -7426 dbnsfp.fsd -dir gdl -141367 jssnn.hmw -184482 sczphnp.vnc -126288 vjlfrdp.tqh -dir wndpdj -$ cd cbpfvdp -$ ls -dir cvfr -dir qpbqqj -$ cd cvfr -$ ls -dir jfrnvts -dir qpbqqj -$ cd jfrnvts -$ ls -dir vwdn -$ cd vwdn -$ ls -236936 vjlfrdp.tqh -$ cd .. -$ cd .. -$ cd qpbqqj -$ ls -254275 bqd -$ cd .. -$ cd .. -$ cd qpbqqj -$ ls -dir jssnn -201960 qpbqqj -$ cd jssnn -$ ls -131127 jssnn -$ cd .. -$ cd .. -$ cd .. -$ cd gdl -$ ls -225146 hsgzmtp.wcs -204436 jssnn.lhh -64007 mjzjgfg.jsb -$ cd .. -$ cd wndpdj -$ ls -245412 bvcq -211386 dbnsfp.tqd -186962 fql.mww -dir hlmhtfz -117446 smvjvcn.lcp -$ cd hlmhtfz -$ ls -150152 lrdhbq.rvm -$ cd .. -$ cd .. -$ cd .. -$ cd zjbvwsnv -$ ls -179703 fvmbz -87552 qtz.ccw -129764 rrcsndz.tzp -$ cd .. -$ cd .. -$ cd nwglfhpl -$ ls -66039 crlq.lrj -dir cwq -dir dlgrsw -267814 frhlttn.nmd -dir hmprt -dir qpbqqj -dir wnfzznfh -$ cd cwq -$ ls -77655 cpjnwzh -dir pcccp -dir zjbvwsnv -dir zzhjfmnr -$ cd pcccp -$ ls -dir pcccp -$ cd pcccp -$ ls -245309 bggzbrg.flf -$ cd .. -$ cd .. -$ cd zjbvwsnv -$ ls -196915 gnmfb.dzq -dir ngqbdqp -$ cd ngqbdqp -$ ls -355 rrcsndz.tzp -$ cd .. -$ cd .. -$ cd zzhjfmnr -$ ls -dir dbnsfp -$ cd dbnsfp -$ ls -223184 chq.jvb -$ cd .. -$ cd .. -$ cd .. -$ cd dlgrsw -$ ls -181906 chq.jvb -5636 dbnsfp -219889 jbr.slc -dir zrntbl -$ cd zrntbl -$ ls -61864 brnpgpwt -138980 qpbqqj -$ cd .. -$ cd .. -$ cd hmprt -$ ls -90249 dbnsfp.mbd -$ cd .. -$ cd qpbqqj -$ ls -290377 crlq.lrj -$ cd .. -$ cd wnfzznfh -$ ls -83022 hclmps -64095 zhm -$ cd .. -$ cd .. -$ cd pcccp -$ ls -dir rdzntr -dir rvccq -$ cd rdzntr -$ ls -239028 rrcsndz.tzp -$ cd .. -$ cd rvccq -$ ls -22746 chq.jvb -288752 jjvppq.swt -dir msgwsnjq -dir pggz -228469 vjlfrdp.tqh -$ cd msgwsnjq -$ ls -102522 lwgqc.mhv -25239 ndm.llf -$ cd .. -$ cd pggz -$ ls -dir cnjqsqj -$ cd cnjqsqj -$ ls -229407 shpnq -$ cd .. -$ cd .. -$ cd .. -$ cd .. -$ cd pdnj -$ ls -193069 rwnhgttz.pvp -$ cd .. -$ cd sjstqlcb -$ ls -263295 chq.jvb -224091 jss.wtr -$ cd .. -$ cd zssln -$ ls -5859 ncdlcr.dll -$ cd .. -$ cd .. -$ cd dbnsfp -$ ls -271252 dhcrzvbr.wmn -$ cd .. -$ cd hppb -$ ls -259968 jssnn -81292 qpqqb.clj -$ cd .. -$ cd mcnzs -$ ls -170903 crlq.lrj -59482 dhcrzvbr.wmn -dir dqzwzbgm -dir gnrztn -286736 jssnn.jcm -32791 phqsgl -dir pzjnrwt -197323 vjlfrdp.tqh -dir wvnwbpct -$ cd dqzwzbgm -$ ls -78575 qpbqqj -251546 qpbqqj.slb -$ cd .. -$ cd gnrztn -$ ls -158603 hdnwmd.rhj -dir nbfdtwzr -178239 ptnchzpg -40517 rrcsndz.tzp -dir smvb -198007 vjlfrdp.tqh -$ cd nbfdtwzr -$ ls -200354 crlq.lrj -$ cd .. -$ cd smvb -$ ls -163921 zjbvwsnv.brz -$ cd .. -$ cd .. -$ cd pzjnrwt -$ ls -33891 lwrll -259646 pcccp.sfn -106835 pqfzthjq -189673 rrcsndz.tzp -$ cd .. -$ cd wvnwbpct -$ ls -234188 dhcrzvbr.wmn -dir gmtpsgv -86379 jssnn -146663 sfpmdbbd.jvt -25795 vjlfrdp.tqh -$ cd gmtpsgv -$ ls -18642 chq.jvb -3046 cznlwtw -26335 ddgpngrc -116455 vnnls.hsg -$ cd .. -$ cd .. -$ cd .. -$ cd npntsr -$ ls -dir cccjdcvb -206657 chq.jvb -280518 crlq.lrj -dir dbnsfp -dir jphnn -dir jssnn -dir mpl -195193 rrcsndz.tzp -dir rztc -dir znwp -$ cd cccjdcvb -$ ls -192965 mcr.sfq -$ cd .. -$ cd dbnsfp -$ ls -dir gfns -173317 jssnn.tjq -dir mgr -68817 mvwcwfcr.zmz -dir pqfht -108571 swfl.dtj -10398 tvvvv -dir vzg -174361 zjbvwsnv -$ cd gfns -$ ls -203999 zjbvwsnv.hfg -$ cd .. -$ cd mgr -$ ls -dir zjbvwsnv -$ cd zjbvwsnv -$ ls -26871 tqlgcf.jrn -$ cd .. -$ cd .. -$ cd pqfht -$ ls -199590 clpvscl.rlm -dir dwlhv -dir vhzfzhrb -$ cd dwlhv -$ ls -130761 qpbqqj -242752 rrcsndz.tzp -$ cd .. -$ cd vhzfzhrb -$ ls -dir njdgcbvm -$ cd njdgcbvm -$ ls -dir snjfqg -$ cd snjfqg -$ ls -dir qpwh -$ cd qpwh -$ ls -153353 qsjpj -$ cd .. -$ cd .. -$ cd .. -$ cd .. -$ cd .. -$ cd vzg -$ ls -dir pcccp -$ cd pcccp -$ ls -dir jfbtl -$ cd jfbtl -$ ls -209199 dbnsfp -$ cd .. -$ cd .. -$ cd .. -$ cd .. -$ cd jphnn -$ ls -52305 crlq.lrj -193480 gmms.whz -59354 nmq.dww -64638 qpbqqj -47072 rrcsndz.tzp -$ cd .. -$ cd jssnn -$ ls -69168 crlq.lrj -1549 dhcrzvbr.wmn -219596 hdmczg.lmm -108063 jssnn -24327 vjlfrdp.tqh -dir zjbvwsnv -$ cd zjbvwsnv -$ ls -189952 chq.jvb -$ cd .. -$ cd .. -$ cd mpl -$ ls -144856 bqrrzm -249487 crlq.lrj -dir ffqgpgfg -93632 flqwtn.nsz -dir mwpcqr -195910 pdqwn.lcg -$ cd ffqgpgfg -$ ls -66459 dbnsfp -200500 lcmt.zmz -207093 qpbqqj -77042 vjlfrdp.tqh -57109 wwzv.hbn -$ cd .. -$ cd mwpcqr -$ ls -dir zjbvwsnv -$ cd zjbvwsnv -$ ls -166393 vjlfrdp.tqh -$ cd .. -$ cd .. -$ cd .. -$ cd rztc -$ ls -57788 chq.jvb -$ cd .. -$ cd znwp -$ ls -164627 chq.jvb -$ cd .. -$ cd .. -$ cd zjbvwsnv -$ ls -dir dgrrl -71529 jssnn -198617 pcccp.qqh -dir phggn -56842 zjbvwsnv.vqd -$ cd dgrrl -$ ls -dir czm -dir fhhlbdlz -dir gstjw -dir qpbqqj -dir stgb -$ cd czm -$ ls -dir jssnn -$ cd jssnn -$ ls -162335 chq.jvb -30099 mfdgdw -96389 pcdsd.wmw -251423 tmz.lcb -205979 vpltdt.gtv -$ cd .. -$ cd .. -$ cd fhhlbdlz -$ ls -dir qpbqqj -dir vdjs -dir zgz -$ cd qpbqqj -$ ls -285561 chq.jvb -263924 lbqcfdrs -138854 pcccp.dtn -$ cd .. -$ cd vdjs -$ ls -32688 chq.jvb -223233 tbn.blt -$ cd .. -$ cd zgz -$ ls -92804 bqltmv.wzb -$ cd .. -$ cd .. -$ cd gstjw -$ ls -151784 fvfszzzn.cbh -$ cd .. -$ cd qpbqqj -$ ls -dir blztqf -dir plgnh -$ cd blztqf -$ ls -195097 wlvmtz -$ cd .. -$ cd plgnh -$ ls -dir dbnsfp -246221 dhcrzvbr.wmn -271121 jhwmmzls.mhw -170162 pcccp.dpp -37872 qpbqqj -$ cd dbnsfp -$ ls -dir dhpnr -$ cd dhpnr -$ ls -152837 pcccp -$ cd .. -$ cd .. -$ cd .. -$ cd .. -$ cd stgb -$ ls -248436 vjlfrdp.tqh -$ cd .. -$ cd .. -$ cd phggn -$ ls -284602 dhcrzvbr.wmn -dir lctr -dir rjmc -66651 rrcsndz.tzp -117525 vth.fgw -156877 wcqnjzbq.dgf -7803 zpsrzclh.bzw -$ cd lctr -$ ls -212339 jssnn.whp -dir jzhcqb -99974 pcccp.zhs -111354 pmc -104899 vjlfrdp.tqh -93496 zhwmbw -$ cd jzhcqb -$ ls -dir zjbvwsnv -$ cd zjbvwsnv -$ ls -146807 rbrg -$ cd .. -$ cd .. -$ cd .. -$ cd rjmc -$ ls -dir fvbmsc -139747 glwmr.lrg -dir gvnnz -102023 tbj.qmz -dir vsztsjfh -$ cd fvbmsc -$ ls -136838 vpvbz.qtw -$ cd .. -$ cd gvnnz -$ ls -95498 zjbvwsnv -$ cd .. -$ cd vsztsjfh -$ ls -215479 ffwlcrwb diff --git a/2022/day7/ref.txt b/2022/day7/ref.txt deleted file mode 100644 index 01b76da..0000000 --- a/2022/day7/ref.txt +++ /dev/null @@ -1,23 +0,0 @@ -$ cd / -$ ls -dir a -14848514 b.txt -8504156 c.dat -dir d -$ cd asdf -$ ls -dir e -29116 f -2557 g -62596 h.lst -$ cd e -$ ls -584 i -$ cd .. -$ cd .. -$ cd d -$ ls -4060174 j -8033020 d.log -5626152 d.ext -7214296 k diff --git a/2022/day8/asd.py b/2022/day8/asd.py deleted file mode 100755 index c9a7209..0000000 --- a/2022/day8/asd.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env python3 - -# import numpy as np -from functools import reduce -from re import findall -from copy import deepcopy -import sys - -# filename = "ref.txt" -filename = "pzl.txt" -data = open(filename).read().rstrip('\n') -lines = [line for line in data.split('\n')] - -res1 = 0 -res2 = 0 - - -y_len = len(lines) -x_len = len(lines[0]) -arr = [[int(lines[y][x]) for x in range(x_len)] for y in range(y_len)] - -edge_count = 2*(y_len-1) + 2*(x_len-1) -res1 += edge_count - -def get_len(arr): - if len(arr) == 0: - return 0 - - curr_max = -1 - for i,val in enumerate(arr): - if val < curr_max: - return i - curr_max = max(val, curr_max) - return i+1 - -def get_len2(compare, arr): - for i,val in enumerate(arr): - if val >= compare: - return i+1 - return len(arr) - - -def slice_x(arr, y, xs, xe, s=1): - return [arr[y][i] for i in range(xs, xe, s)] - -def slice_y(arr, x, ys, ye, s=1): - return [arr[i][x] for i in range(ys, ye, s)] - -scores = list() - -for y,_ in enumerate(arr): - for x,_ in enumerate(arr[y]): - v = arr[y][x] - if 0 < y < y_len-1 and 0 < x < x_len-1: - if all([v > arr[y][i] for i in range(0,x)]) or\ - all([v > arr[y][i] for i in range(x+1,x_len)]) or\ - all([v > arr[i][x] for i in range(0,y)]) or\ - all([v > arr[i][x] for i in range(y+1,y_len)]): - res1 += 1 - - mul = [ - get_len2(v, slice_x(arr, y, x+1, x_len)), - get_len2(v, slice_x(arr, y, x-1, -1, -1)), - get_len2(v, slice_y(arr, x, y+1, y_len)), - get_len2(v, slice_y(arr, x, y-1, -1, -1)) - ] - score = reduce(lambda x,y:x*y, mul) - scores.append(score) - - -res2 = max(scores) - -print('res1:', res1) -print('res2:', res2) - diff --git a/2022/day8/day8.c b/2022/day8/day8.c deleted file mode 100644 index f59322e..0000000 --- a/2022/day8/day8.c +++ /dev/null @@ -1,155 +0,0 @@ -#include -#include -#include -#include -#include "../util.h" - -s32 reduce(s32 (*f)(s32 x, s32 y), s32 arr[], s32 len) -{ - s32 ret = arr[0]; - - for (s32 i = 1; i < len; ++i) { - ret = f(ret, arr[i]); - } - - return ret; -} - -s32 mul(s32 x, s32 y) -{ - return x * y; -} - -s32 max(s32 x, s32 y) -{ - return x > y ? x : y; -} - -s32 count_char_in_string(char c, char *s) -{ - s32 count = 0; - do - if (c == *s) - count++; - while (*s++); - return count; -} - -char *goto_char_in_string(char c, char *s) -{ - do - if (c == *s) - return s; - while (*s++); - return NULL; -} - -#define PP(arr, y,x) *(*(arr+y)+x) - -// char filename[] = "ref.txt"; -char filename[] = "pzl.txt"; - -#define BUF_LEN 10000 -char file_buf[BUF_LEN]; - -int main() -{ - int fd = open(filename, O_RDONLY); - s32 data_len = read(fd, file_buf, LEN(file_buf)); - - if (data_len == -1) { - printf("error opening file\n"); - exit(1); - } else if (data_len == LEN(file_buf)) { - printf("buffer probably not big enough\n"); - exit(1); - } - file_buf[data_len] = '\0'; - - s32 y_len = count_char_in_string('\n', file_buf); - s32 x_len; - // printf("y_len: %d\n", y_len); - - s32 **arr = malloc(y_len * sizeof(s32*)); - s32 **flag = malloc(y_len * sizeof(s32*)); - char *start = file_buf; - for (s32 i = 0; i < y_len; ++i) { - char *end = goto_char_in_string('\n', start); - x_len = end - start; - // printf("x_len: %d\n", x_len); - - *(arr+i) = malloc(x_len * sizeof(s32*)); - *(flag+i) = malloc(x_len * sizeof(s32*)); - - for (s32 j = 0; j < x_len; ++j) { - *(*(arr+i) + j) = *(start + j) - '0'; - *(*(flag+i) + j) = 0; - } - start = end+1; - } - - - s32 res1 = 0; - s32 maxval; - -#define RES1_CHECK() \ - if (PP(arr, y, x) > maxval) { \ - maxval = PP(arr, y, x); \ - if (PP(flag, y, x) == 0) { \ - PP(flag, y, x) = 1; \ - res1 += 1; \ - } \ - } - - for (s32 y = 0; y < y_len; ++y) { - maxval = -1; - for (s32 x = 0; x < x_len; ++x) - RES1_CHECK(); - maxval = -1; - for (s32 x = x_len-1; x >= 0 ; --x) - RES1_CHECK(); - } - for (s32 x = 0; x < x_len; ++x) { - maxval = -1; - for (s32 y = 0; y < y_len; ++y) - RES1_CHECK(); - maxval = -1; - for (s32 y = y_len-1; y >= 0 ; --y) - RES1_CHECK(); - } - - - s32 res2 = 0; - for (s32 y = 0; y < y_len; ++y) { - for (s32 x = 0; x < x_len; ++x) { - - s32 rldu[4] = {0}; - for (s32 r = x+1; r < x_len; ++r) - if ((PP(arr,y,r) >= PP(arr,y,x)) || (r==(x_len-1))) { - rldu[0] += r-x; - break; - } - for (s32 l = x-1; l >= 0; --l) - if ((PP(arr,y,l) >= PP(arr,y,x)) || (l==0)) { - rldu[1] += x-l; - break; - } - for (s32 d = y+1; d < y_len; ++d) - if ((PP(arr,d,x) >= PP(arr,y,x)) || (d==(y_len-1))) { - rldu[2] += d-y; - break; - } - for (s32 u = y-1; u >= 0; --u) - if ((PP(arr,u,x) >= PP(arr,y,x)) || (u==0)) { - rldu[3] += y-u; - break; - } - res2 = max(res2, reduce(mul, rldu, LEN(rldu))); - } - } - - printf("res1: %d\n", res1); - printf("res2: %d\n", res2); - // asm("int3"); -} - diff --git a/2022/day8/pzl.txt b/2022/day8/pzl.txt deleted file mode 100644 index e6d0149..0000000 --- a/2022/day8/pzl.txt +++ /dev/null @@ -1,99 +0,0 @@ -201111211202111301212201403141040230323033312212134523125000140404300230341330300221220012110101011 -011220103113221111202122124010033421404432343233535151335133353340034134034332440001110102010010220 -122121120300202230411332402004044235424325455343231124521355323541403402031010313440121321321322221 -200021211323122312440342411331012332252341254144425451345233324423152201041200212200331121111210011 -022213121203213301221100041021415245132424534145512125411151335224315551123141404223410032032000022 -101131310332214402243114310442325141344331525541232153453225442351235123130234413214313330121121101 -101102011001014411302320032155533351421345311554341111544153414344211242545240114004311012303003230 -101023122212322231421422241433315213542415532226334465642351151321144451152132311230002433230001110 -101102012000130221414322332331245251153242654525425363234533655232423135443124134230202313201000123 -113023100223214000232555442143243135556634652423636245645335623323351235221252344243002420033131123 -021023012400222133115232154155255455226363244263663662564362455342612241224452135301204334403311211 -011011120014313211333124154235235522553465256455435352362343343356452125515224121432404101240133203 -011310103034221123212123555245622666563625344356454344325522453265262433154414231333142413311331323 -303301320412010454251154421242542562366466364652264364325544554624545256254413534434331434344310311 -211332131030004243315521542363644424356453643345544752562524552255353324654134525543231434112230100 -002102403432244535421254566353326346446265345654366646566543552562536326635315453214125414141214102 -331140031313041444123423526426422252527375577546753455777737547626364645566461554234123523430311313 -330401323101512253253516526653653542734767336644345445665364743533364355534236521342413154132413122 -330411204212311445244535522655343573747374364345564574375763553465534526662642244443311121403103124 -023332003431144254543626226245566455744465356337347475347374637637653442626233624414255134423423042 -244210400021232153266652252325756653575474576355747475663555354556777566436342344532415443212134234 -243022342335541213565253544236755753776564447733743446775775654547533666422423326624134345443023202 -400214112533143341263455565263566576767643378645664845674353474533736575624522664521123334133420203 -314412035353435253634446462463763443376476847467648547566465453356757464475343435464134531133123324 -210413325433315134452365563547564744658868746684566644877466576346553654766362254362221413424430422 -440400434542543525543663633667763537556667668747746756785587458767563547637623326226661151144334010 -203031334152125642466635547657766584664687848767577545486757587488654373354446324524564152231113112 -241001452244343336664255646743677756848545865758665674685886656454447657464556245442364333553250131 -014023224515325454455574567445744885857785756585855854887668646555746475564455722536445351532451133 -240034522142434662453346666663547675448567854897757695674874464454475574464737776424553231541143102 -202432344512662423437374345345446848546655697769865799957684557848684543374647545532223321334341333 -123325111441445225523673536445447568774877677796777678697975965546774547536673437544656344512135444 -310254211535525232233446556788846647746897588857688579889788855477655648566666635426236522424112342 -034313254213653456477557533774786647669769587699976668986696667747555648883667447465462526444143342 -143141533334542466354344755484874754698685556789559989587957999587645467546553365742323424612353420 -023355513126235334753777564744657489776767789956675687857787669856547584455737646446352333233414322 -223531421366552557666573477756875578695968796778976887859959556598778688876655735777332545512434212 -324553233365452565557437476777687565788999986896686778796755558896856684686773556344634525262453452 -213242455253625376773454787557859959899988899999978889797885876979769647857487767764545335245255213 -153212131552226337374543645684765767796896876966989866686867979876788867784675754744525622655431425 -043231154325334367553646774578457959887979898666866967789799775569887978674668454463732263426513135 -335542344226645477333775676444769565755967887779666696689698896656597875884556557743462633443124152 -335323556552426765767775874764689686976988996666779796996969887796587577847457535454643262525413534 -031342356243536356663654658854697858887697788666879779897996867856867654685767655656766443625531132 -335345116666525747477647458845785958767699688899778878776776988777668657478884857465753336533142152 -431315146645532647447566887678656986686996889897797878877768979656986556466744563333546332255135135 -345455244545432335674458658587555587989897879999798888988976986779787768754855836367363664566413353 -512151454564534653477764765466595799679979878789789879998767887865797755765458674344355656253343334 -223351266325633575663774564489796879687898688978997788798999779796767956656764647364636656442223522 -453333263535357446366584455459557799968998879988898977978787696768578657875454473547567326532334111 -522431356454444356554374544846975859978878977879979897898976787967789578746656874774547443245541214 -524451243233255555453685476745875568898798878799987879899778979895889689545784464464664644546653534 -351343243662255667567757864679695778779676778997998897779866887675677768667848643753754363345434313 -422125253344236737334386654576687898997799677887987777887686867895579866465457665345774366464351334 -421312154235324535653777678786976887577869769887898799897698686878966689468464555357752255363554413 -134231353356532647544747466746997955968966989988799777786898667996595997676454734577542423644111423 -254152156456563434474788846574786769698798686897989989968667786695865858667776755455566654264132134 -325554124554345334573567875686789766777879789968978788797868997657598864755765764646452636426312235 -054421142246245654657458647846877765696688798786967788769769989568865887586878654537663362654432212 -313445116364256444775744655676857696698998799776867668888686999587568854476648764345346236246232241 -143114554233652245375455887678668996669686996999796887877777686757966588885786556444465552442533324 -251331534446564265464364486744686986675876988887767766688896987878765756544754746565355566534235144 -043312335432626344536643484678579666899596766779666899678676979556965588747766665377565544465543531 -242445211324566636637644588748444588767957766968968978786788586989657745475556775355542555362121442 -243253334442556446446767754567476657566957796656988796979699968699856846446535677455225423345132114 -431231245536522344674653635685865849787997986689665576586668667768645854645567336572252526524445114 -431352413545636624334373564776844687557987796967657766857786797968874766656443453336264564435235253 -320554134146445446354475753477858558775599755977987865757897668588588666485457344365453335234122310 -333244132156433233245637373688448784459857795676588655998585696485786865554473364636554335355224153 -113345451542245623453737457745456844757575897756758966757557585554868888643374344325656234154414322 -444045515145356432335647545655765786587886758778866688968984877775888576477747477332355221552413204 -111132223523345626324747765577376687656748476986565687576768448558884573773436752362454612221523223 -022004333435234546566255554533348546676766478456868467444674448586545655467537436553554433123421120 -333231125332152663266433667535537778555667876464765456758647764446877656465367323254523253352510413 -122420553331452433333353464676537646864677748867574756565588454444657764464332235454635225432522004 -120442052444321222226423365375645435468656658447866466574856466886677654746522644365264535531343440 -421404315233111265423463525657764565658784687768567656464684688763534555373553346542234345145442244 -331231242152133344456244633655545655745345664668565885467456447677744435752654334432232553354400240 -203040023155425242246555225235473556554656638646764676455766756555576576336522336454124215215404311 -020211430251454452662234222644467675755747776474545447746753537773655567623542436262213453434423110 -121222320253353333233652252225333343646436546477634345533376676557363636362664225322253234514301234 -131331122021145511555626563643364773337345554777664437674344775376757362452454652245212143131222333 -333033033132243135213222343542265476344656453763774355443644566737723253264252451243142121312244244 -002204430244435144434515354453332632665637375363445456667774576662453443646454532431524140202312242 -121314024424022223215424644426642356264655357667436346735353466356245254264535315425323522230030301 -021012030013043135124451434556465446663353754754774574457663344656553456246613524313152023413220330 -323211122442404125421353336334324324563564625653556556652432462453235325362525324531133444231304313 -221212242244240214314234323556334553353656452662622464552256465443444565421332134313540102100220131 -003121311143322334241133533143446663652225433332652353542523664466644655215235421122322101243201202 -302132313044423014553344334444135543546462343625633335635554425246463354552555544450021401441212013 -211320002042341321404351332421424422345645623225243263532425463422453534224512413420003024103010003 -121321233203044310220544225434555523322652465244626362265436622244421244514121221412000233313302001 -033330113222134212123014455534453323452146635634333522662322621122442141151325121244124021100331010 -003211203200004004334013134312421412135211541122652523655533352215155345414442033214440410020130131 -000310132331000133341101412343222324131145425545545422415232421245514432554132410203120223330322031 -010222121001201110014203011212115523421525414334222144411533424243442552424243301203331330320011211 -202210333132013102411304342331452231412212555243242135532222244343234442033031110220213320300213112 -021110333231201113044040042034211335553321154444412432243122252145522223420412102042311030021122200 -212222233011232310420321434331332422434543133323345512355241515513414041433311311240302022331021120 diff --git a/2022/day8/ref.txt b/2022/day8/ref.txt deleted file mode 100644 index 16d6fbd..0000000 --- a/2022/day8/ref.txt +++ /dev/null @@ -1,5 +0,0 @@ -30373 -25512 -65332 -33549 -35390 diff --git a/2022/day9/asd.py b/2022/day9/asd.py deleted file mode 100755 index 5a1d94a..0000000 --- a/2022/day9/asd.py +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/env python3 - -# import numpy as np -from functools import reduce -from re import findall -from copy import deepcopy -import sys -import time - -animate = False -# filename = "ref.txt" -# filename = "ref2.txt" -filename = "pzl.txt" -data = open(filename).read() -lines = [line for line in data.rstrip('\n').split('\n')] - - -moves = [] -for a in lines: - m = [0, 0] - direction, count = a.split(' ') - if direction == 'R': - m = [1, 0] - elif direction == 'U': - m = [0, 1] - elif direction == 'D': - m = [0, -1] - elif direction == 'L': - m = [-1, 0] - - # m = [int(count)*i for i in m] - for _ in range(int(count)): - moves.append(m) - -# print(moves) - -res1 = 0 -h = [0,0] -t = [0,0] -visited = set() -visited.add(tuple(t)) - -for m in moves: - h = [hi + mi for hi,mi in zip(h,m)] - - dx = h[0] - t[0] - dy = h[1] - t[1] - - if abs(dx) > 1 or (abs(dx) > 0 and abs(dy) > 1): - t[0] += dx//abs(dx) - - if abs(dy) > 1 or (abs(dy) > 0 and abs(dx) > 1): - t[1] += dy//abs(dy) - - visited.add(tuple(t)) - - -res2 = 0 -ht = [[0,0] for i in range(10)] -visited9 = set() -visited9.add(tuple(ht[9])) - - -def print_grid(arr, c=''): - lx = 100 - ly = 40 - grid = [['.' for _ in range(lx)] for _ in range(ly)] - - for i, (x, y) in enumerate(arr): - try: - grid[-y+ly//2][x+lx//2] = c if c!='' else str(i) - except: - pass - - grid[ly//2][lx//2] = "s" - - print('\x1b[2J') - for line in grid: - for c in line: - print(c, end="") - print("") - time.sleep(1/20) - -for m in moves: - ht[0] = [hi + mi for hi,mi in zip(ht[0],m)] - - for i,_ in enumerate(ht): - if i == 0: - continue - dx = ht[i-1][0] - ht[i][0] - dy = ht[i-1][1] - ht[i][1] - - if abs(dx) > 1 or (abs(dx) > 0 and abs(dy) > 1): - ht[i][0] += dx//abs(dx) - - if abs(dy) > 1 or (abs(dy) > 0 and abs(dx) > 1): - ht[i][1] += dy//abs(dy) - - # print(ht) - visited9.add(tuple(ht[9])) - - if animate: - print_grid(ht) - -# print(visited9) - -res1 = len(visited) -res2 = len(visited9) - -if animate == True: - print_grid(visited9, c='#') -else: - print('res1:', res1) - print('res2:', res2) - diff --git a/2022/day9/pzl.txt b/2022/day9/pzl.txt deleted file mode 100644 index b87df75..0000000 --- a/2022/day9/pzl.txt +++ /dev/null @@ -1,2000 +0,0 @@ -U 1 -D 2 -U 1 -L 1 -R 1 -L 1 -D 1 -L 2 -U 2 -L 2 -D 2 -L 2 -D 2 -L 1 -R 1 -D 1 -U 1 -D 1 -R 1 -U 2 -D 2 -R 2 -L 2 -R 2 -D 2 -L 2 -D 2 -R 1 -L 2 -D 2 -R 2 -D 1 -R 1 -L 1 -D 1 -U 1 -L 2 -D 2 -R 1 -L 2 -R 1 -U 1 -R 1 -L 1 -R 2 -D 1 -U 1 -D 1 -R 1 -U 2 -R 2 -D 1 -R 2 -D 1 -U 1 -D 1 -R 2 -U 2 -D 1 -U 2 -D 1 -L 1 -D 1 -U 2 -R 1 -L 1 -R 1 -D 2 -U 1 -D 2 -L 1 -R 2 -U 2 -R 1 -D 1 -R 1 -U 1 -R 1 -U 2 -R 2 -L 1 -U 1 -D 2 -U 1 -D 2 -L 2 -D 1 -U 2 -L 1 -U 1 -D 1 -U 1 -L 1 -D 2 -L 2 -R 1 -D 1 -L 2 -D 2 -R 2 -L 1 -D 1 -L 2 -U 2 -L 1 -R 2 -U 1 -D 1 -L 1 -U 2 -L 1 -D 1 -U 3 -D 3 -L 3 -U 2 -R 1 -U 2 -R 1 -U 2 -L 2 -U 3 -R 2 -L 1 -U 1 -D 3 -R 3 -U 1 -D 3 -L 2 -R 1 -L 1 -U 3 -R 3 -D 3 -U 2 -L 3 -D 3 -U 1 -L 1 -U 2 -D 1 -L 3 -D 3 -R 3 -U 1 -L 2 -R 1 -L 3 -U 2 -D 2 -R 3 -D 3 -L 1 -R 2 -D 1 -L 3 -U 1 -D 3 -U 3 -D 1 -U 1 -R 1 -U 2 -L 1 -D 3 -R 3 -D 1 -U 2 -D 2 -L 3 -D 3 -U 1 -D 2 -R 2 -L 1 -D 3 -L 1 -U 2 -L 2 -D 1 -L 3 -R 1 -L 1 -R 3 -U 1 -L 3 -R 2 -L 1 -D 1 -R 3 -D 1 -R 1 -D 1 -L 3 -D 1 -U 2 -R 3 -D 1 -U 1 -R 2 -U 1 -R 3 -L 3 -U 3 -D 2 -R 3 -L 1 -D 2 -R 2 -L 2 -U 1 -L 3 -R 2 -L 2 -U 3 -L 1 -D 1 -U 2 -R 1 -U 3 -R 2 -D 3 -L 3 -U 4 -D 4 -R 3 -L 3 -R 3 -U 2 -R 3 -L 4 -R 2 -U 1 -R 3 -U 3 -R 4 -U 2 -D 3 -L 3 -D 4 -U 3 -D 4 -U 3 -D 2 -R 2 -D 1 -R 4 -U 2 -D 4 -L 3 -D 4 -U 1 -L 2 -R 1 -L 3 -R 1 -L 3 -U 3 -D 3 -U 4 -L 2 -D 4 -L 4 -U 4 -L 3 -D 1 -R 2 -U 4 -R 2 -L 1 -R 3 -D 2 -L 3 -U 2 -R 1 -U 1 -D 3 -L 4 -D 3 -L 3 -D 3 -U 4 -D 3 -R 4 -L 1 -U 2 -R 4 -D 2 -U 3 -L 4 -R 2 -L 1 -D 4 -U 3 -R 2 -L 2 -R 4 -L 4 -D 1 -L 3 -D 4 -L 3 -U 2 -R 2 -D 4 -R 2 -U 2 -D 1 -U 4 -D 2 -R 4 -D 1 -U 1 -D 1 -R 1 -L 1 -R 2 -U 4 -R 4 -D 3 -R 4 -L 1 -D 2 -U 1 -L 3 -U 4 -R 3 -D 4 -L 1 -D 1 -L 4 -D 3 -R 1 -D 4 -L 3 -R 2 -D 3 -L 2 -D 4 -U 2 -L 2 -D 4 -L 2 -U 5 -R 3 -D 2 -U 5 -R 3 -L 3 -R 1 -D 4 -R 1 -D 3 -U 3 -R 2 -D 5 -U 4 -L 1 -D 1 -R 5 -D 5 -U 1 -L 3 -D 2 -L 4 -U 3 -L 2 -U 1 -R 1 -U 2 -D 5 -L 1 -R 4 -L 1 -U 3 -L 5 -U 2 -L 1 -R 1 -L 1 -R 1 -U 5 -D 5 -R 2 -D 4 -L 1 -R 4 -L 3 -U 5 -L 4 -U 3 -R 5 -D 1 -L 3 -R 1 -U 5 -R 2 -L 4 -U 1 -L 2 -U 5 -L 3 -U 1 -R 3 -D 4 -U 1 -R 5 -L 5 -R 1 -D 1 -R 5 -U 1 -R 2 -L 5 -R 2 -L 2 -R 1 -U 5 -D 2 -L 2 -R 4 -L 3 -U 5 -R 2 -L 3 -R 2 -D 1 -R 5 -L 4 -D 2 -U 1 -R 4 -D 3 -R 4 -D 2 -R 2 -D 5 -L 3 -D 1 -U 2 -L 1 -U 5 -D 4 -U 2 -R 5 -U 3 -D 4 -R 2 -U 2 -R 4 -D 6 -L 6 -D 1 -U 2 -D 4 -R 3 -D 6 -R 4 -L 6 -R 4 -D 2 -U 4 -D 3 -U 2 -L 4 -R 6 -U 5 -R 3 -U 1 -L 3 -D 2 -R 5 -D 4 -U 6 -D 4 -R 2 -U 6 -D 6 -U 5 -R 1 -U 4 -R 5 -L 6 -U 2 -D 2 -R 5 -U 3 -L 3 -U 2 -D 4 -L 5 -R 2 -D 5 -L 3 -U 4 -D 3 -U 5 -L 2 -U 3 -L 2 -U 3 -L 3 -U 1 -L 2 -U 1 -L 6 -D 1 -R 4 -D 4 -L 4 -U 4 -D 4 -R 2 -D 1 -U 1 -R 4 -D 2 -R 4 -L 6 -R 5 -U 2 -R 2 -U 1 -R 6 -L 1 -U 6 -R 5 -D 4 -L 2 -U 4 -R 3 -D 5 -L 5 -D 2 -R 6 -U 5 -R 3 -D 1 -L 2 -D 1 -R 4 -L 5 -U 6 -R 4 -D 3 -U 3 -R 1 -D 3 -U 2 -L 1 -U 1 -R 5 -L 4 -D 1 -R 2 -U 1 -L 3 -R 5 -D 5 -U 5 -L 1 -U 2 -R 7 -D 5 -L 7 -D 2 -R 7 -L 2 -D 6 -U 1 -L 5 -U 5 -D 2 -R 4 -U 3 -L 7 -R 5 -L 3 -D 6 -U 2 -D 5 -L 3 -R 4 -U 6 -D 5 -L 5 -U 2 -D 5 -R 4 -U 2 -L 2 -D 5 -U 2 -R 5 -L 4 -R 5 -U 6 -D 3 -U 7 -L 6 -D 4 -U 2 -R 7 -L 5 -D 5 -R 6 -L 1 -D 2 -L 2 -R 2 -U 3 -R 7 -D 1 -U 3 -R 2 -U 3 -R 5 -U 3 -L 7 -D 6 -L 7 -D 5 -L 5 -R 5 -U 2 -L 4 -U 7 -L 2 -D 7 -U 5 -L 4 -R 4 -L 2 -U 5 -L 4 -D 5 -R 7 -U 2 -L 1 -D 6 -R 1 -U 6 -D 1 -L 7 -U 3 -D 2 -L 3 -U 4 -R 4 -L 5 -U 7 -L 1 -D 5 -L 7 -D 1 -R 6 -L 1 -R 5 -L 3 -U 5 -D 2 -U 6 -D 4 -U 1 -R 2 -D 8 -R 8 -D 1 -R 4 -D 6 -L 8 -R 5 -D 5 -R 6 -D 5 -U 1 -L 1 -D 2 -L 4 -R 1 -D 1 -R 7 -L 8 -U 1 -D 8 -U 6 -L 7 -R 4 -U 1 -L 2 -U 1 -L 7 -D 2 -R 8 -L 1 -U 8 -R 8 -D 6 -U 2 -L 8 -D 7 -U 4 -R 8 -L 7 -U 6 -D 6 -U 2 -L 4 -D 3 -L 2 -D 3 -R 7 -U 3 -L 3 -U 3 -D 8 -L 2 -D 3 -L 1 -R 2 -U 8 -L 4 -D 7 -L 8 -R 3 -L 7 -U 2 -R 8 -D 3 -R 7 -U 3 -L 8 -U 5 -D 5 -U 5 -D 8 -U 8 -D 2 -L 4 -U 3 -D 2 -R 6 -U 3 -R 2 -U 4 -R 2 -L 6 -U 7 -R 6 -L 5 -D 6 -L 8 -U 5 -R 3 -L 5 -U 7 -D 7 -L 1 -U 6 -R 7 -D 3 -R 2 -L 7 -R 6 -D 7 -U 4 -D 2 -L 2 -U 3 -R 1 -U 5 -R 6 -D 2 -R 8 -U 7 -L 7 -U 8 -L 4 -R 9 -U 7 -D 6 -L 6 -R 4 -D 9 -L 1 -D 5 -U 2 -L 3 -R 9 -D 2 -U 1 -R 4 -L 8 -R 1 -L 1 -U 4 -R 4 -U 4 -R 3 -D 2 -U 5 -R 8 -D 1 -U 5 -L 4 -D 5 -U 3 -L 1 -D 4 -L 3 -U 8 -R 3 -L 3 -R 9 -U 3 -D 1 -R 4 -U 2 -L 8 -R 7 -L 4 -R 4 -L 7 -U 6 -L 2 -U 9 -R 7 -D 6 -U 5 -L 9 -U 7 -L 5 -D 1 -U 8 -R 4 -D 1 -L 8 -D 8 -L 7 -R 1 -L 7 -R 3 -U 2 -R 5 -D 1 -U 9 -R 1 -L 5 -U 5 -R 6 -L 4 -D 3 -R 9 -D 7 -R 3 -D 2 -R 6 -U 2 -D 5 -L 7 -U 1 -D 8 -R 2 -D 3 -R 3 -L 6 -R 2 -L 7 -D 8 -R 6 -D 6 -R 9 -U 6 -R 9 -D 3 -R 8 -U 7 -L 5 -D 2 -R 5 -U 6 -R 7 -D 7 -U 6 -L 2 -U 6 -R 4 -D 2 -L 9 -U 2 -L 9 -U 9 -R 8 -D 1 -U 9 -R 7 -U 5 -L 3 -D 5 -U 9 -L 2 -R 1 -U 3 -D 4 -L 1 -R 10 -D 9 -U 3 -R 6 -L 1 -D 5 -U 1 -D 10 -U 6 -L 3 -U 7 -D 10 -L 2 -U 10 -D 5 -R 1 -L 1 -R 3 -L 7 -D 4 -L 7 -D 10 -R 8 -L 7 -U 2 -R 6 -U 3 -L 6 -D 4 -R 8 -D 3 -R 8 -D 10 -L 3 -D 5 -L 5 -R 10 -U 6 -L 10 -R 1 -L 7 -D 3 -U 2 -D 6 -R 3 -D 6 -L 4 -R 10 -U 8 -D 4 -L 8 -U 7 -D 3 -L 3 -D 2 -R 8 -U 9 -L 1 -U 8 -D 8 -R 4 -U 9 -D 3 -R 10 -U 3 -L 4 -R 5 -U 3 -R 7 -D 9 -R 4 -U 9 -D 5 -R 8 -L 9 -U 1 -L 8 -R 4 -D 1 -L 4 -D 6 -U 5 -L 4 -R 9 -U 2 -D 7 -R 1 -L 1 -R 7 -D 6 -L 10 -R 10 -D 4 -R 11 -L 8 -U 9 -L 6 -R 4 -U 3 -L 1 -D 7 -L 8 -D 6 -L 3 -R 5 -U 1 -D 9 -U 3 -D 4 -U 11 -D 2 -U 1 -L 4 -R 11 -L 9 -R 6 -U 6 -L 4 -U 11 -L 4 -R 5 -L 10 -R 6 -U 8 -R 8 -L 4 -D 11 -L 11 -R 2 -U 9 -R 6 -D 8 -U 6 -L 1 -R 11 -L 1 -R 1 -D 7 -L 2 -U 11 -D 7 -L 9 -R 7 -U 2 -R 5 -D 10 -R 4 -D 4 -U 2 -R 7 -U 9 -L 10 -U 11 -L 3 -R 10 -D 9 -L 6 -U 10 -L 7 -R 11 -U 5 -D 11 -R 8 -D 1 -U 7 -R 2 -U 8 -D 4 -R 6 -D 4 -U 6 -R 6 -L 7 -U 5 -R 4 -U 5 -R 3 -L 2 -R 5 -D 8 -L 11 -U 2 -R 8 -L 4 -U 11 -R 2 -D 8 -L 3 -D 2 -R 10 -L 2 -R 2 -L 8 -D 8 -L 8 -R 1 -L 1 -U 9 -D 7 -U 6 -R 2 -L 9 -U 11 -D 3 -R 10 -U 5 -R 5 -L 4 -R 10 -L 6 -U 10 -R 2 -U 2 -L 7 -R 10 -L 2 -U 3 -L 9 -U 6 -L 12 -R 8 -U 3 -R 10 -U 12 -L 6 -U 11 -R 2 -D 5 -R 12 -D 10 -R 9 -L 5 -R 9 -L 6 -R 3 -U 4 -R 6 -U 8 -L 3 -U 10 -R 5 -L 3 -U 6 -R 4 -U 10 -R 8 -D 8 -R 3 -L 5 -U 4 -D 9 -U 12 -D 10 -L 10 -R 3 -D 4 -R 2 -D 6 -L 2 -R 3 -L 10 -U 3 -D 6 -L 8 -R 9 -D 4 -L 3 -U 10 -L 11 -R 5 -U 11 -R 11 -D 11 -L 6 -R 5 -D 6 -R 4 -U 9 -R 11 -D 2 -U 9 -L 1 -R 12 -D 8 -R 11 -D 4 -R 3 -U 10 -D 5 -U 9 -R 10 -L 4 -R 9 -L 10 -D 7 -R 8 -L 8 -R 11 -L 3 -U 4 -D 10 -R 2 -L 2 -U 1 -L 12 -U 9 -R 2 -D 7 -R 2 -L 6 -D 8 -L 3 -U 7 -R 6 -D 6 -L 6 -R 5 -L 12 -D 13 -U 9 -L 1 -R 11 -D 4 -U 10 -D 7 -L 8 -U 13 -L 12 -R 3 -L 2 -D 1 -U 4 -D 9 -R 9 -L 12 -D 13 -U 9 -R 8 -L 3 -U 2 -L 1 -U 12 -D 12 -U 5 -L 5 -U 10 -R 3 -D 8 -R 10 -L 9 -R 1 -U 4 -D 12 -R 11 -U 8 -L 9 -U 10 -R 8 -U 13 -D 13 -U 10 -D 5 -R 6 -U 11 -R 4 -U 6 -L 2 -U 13 -L 2 -U 8 -R 13 -U 4 -D 5 -U 3 -R 8 -U 8 -L 6 -U 11 -R 10 -U 8 -D 8 -L 10 -D 9 -U 13 -R 12 -L 10 -R 3 -U 3 -D 10 -R 3 -D 3 -L 6 -R 3 -U 5 -L 3 -R 10 -D 6 -L 10 -D 10 -R 13 -D 1 -R 9 -L 7 -D 12 -U 6 -R 4 -L 1 -U 7 -L 8 -U 7 -L 11 -U 11 -D 1 -U 5 -R 2 -D 1 -L 9 -U 13 -R 10 -L 3 -R 9 -D 10 -R 10 -U 2 -L 4 -R 5 -L 12 -R 7 -D 7 -R 9 -D 6 -L 10 -D 12 -R 10 -D 9 -L 13 -R 13 -L 3 -U 6 -D 8 -L 7 -R 4 -U 7 -L 10 -D 8 -R 12 -L 3 -R 6 -L 14 -R 7 -L 4 -U 8 -D 10 -L 9 -D 10 -R 6 -L 5 -R 8 -U 13 -L 2 -R 13 -L 10 -D 12 -U 4 -R 1 -D 1 -R 10 -L 9 -R 12 -U 10 -D 4 -L 3 -R 7 -D 13 -L 11 -D 3 -U 11 -D 12 -U 4 -R 11 -D 9 -R 3 -D 14 -U 3 -L 10 -D 5 -L 14 -R 13 -L 12 -D 14 -R 2 -U 13 -D 10 -L 13 -U 11 -R 9 -D 4 -L 13 -U 13 -R 5 -L 1 -R 14 -D 4 -U 8 -D 2 -R 2 -U 6 -D 10 -L 1 -U 9 -R 7 -D 2 -L 13 -R 8 -L 12 -R 12 -U 8 -L 14 -D 11 -R 6 -L 5 -R 10 -U 5 -D 12 -L 6 -U 13 -R 3 -D 8 -U 11 -L 7 -D 5 -R 12 -D 8 -R 13 -L 9 -U 4 -D 3 -L 3 -D 15 -L 14 -U 2 -L 10 -R 14 -U 1 -D 11 -L 2 -R 11 -L 12 -R 7 -L 4 -U 15 -D 15 -R 9 -L 9 -R 1 -D 11 -L 1 -U 3 -R 12 -D 7 -U 2 -D 6 -R 1 -D 13 -R 3 -U 10 -D 4 -L 6 -U 8 -L 8 -D 7 -L 6 -U 15 -D 7 -U 1 -D 1 -L 14 -D 3 -U 10 -L 2 -U 14 -D 2 -L 5 -R 3 -U 1 -D 13 -U 13 -D 9 -L 12 -R 5 -L 14 -U 3 -D 11 -R 9 -U 8 -D 5 -R 3 -L 13 -U 2 -L 10 -D 3 -U 2 -L 12 -D 13 -R 14 -U 10 -D 8 -L 8 -R 14 -L 6 -D 14 -L 8 -R 15 -D 10 -R 1 -L 2 -D 6 -L 9 -R 1 -L 4 -D 9 -U 8 -L 1 -R 9 -L 1 -D 5 -L 6 -U 9 -L 6 -R 3 -U 5 -R 12 -D 6 -R 8 -D 3 -U 13 -D 2 -U 2 -L 4 -U 11 -R 4 -L 13 -U 6 -L 12 -U 4 -D 6 -U 11 -D 5 -U 8 -L 10 -D 13 -L 5 -U 15 -L 4 -R 12 -D 1 -L 9 -U 8 -L 4 -U 8 -D 10 -U 12 -L 12 -D 5 -R 10 -D 3 -U 1 -L 6 -R 10 -L 5 -D 8 -U 8 -D 8 -R 6 -U 13 -D 8 -L 16 -R 11 -L 14 -D 15 -R 15 -L 8 -D 1 -U 6 -D 15 -R 9 -L 12 -D 13 -U 9 -D 15 -L 6 -R 9 -U 8 -D 15 -U 7 -L 4 -R 9 -D 2 -R 5 -U 6 -D 14 -L 11 -D 9 -R 2 -U 12 -L 2 -R 15 -U 2 -L 15 -R 9 -U 6 -L 2 -D 4 -U 1 -L 13 -D 5 -R 14 -D 1 -R 13 -U 9 -R 5 -L 4 -U 9 -D 6 -U 7 -R 16 -D 11 -U 8 -R 13 -D 7 -L 12 -D 8 -U 15 -D 11 -U 14 -L 14 -U 10 -L 8 -R 16 -L 3 -U 13 -D 5 -L 2 -R 8 -L 10 -D 6 -R 15 -D 11 -U 3 -D 12 -R 12 -L 15 -U 13 -L 14 -D 2 -R 6 -L 5 -R 2 -U 2 -D 11 -U 14 -L 9 -R 14 -D 17 -R 10 -D 1 -U 11 -L 3 -U 1 -D 17 -L 10 -R 6 -L 14 -U 4 -D 2 -U 17 -L 2 -R 10 -D 14 -L 5 -U 7 -D 7 -R 13 -U 9 -D 9 -U 7 -D 17 -U 15 -D 1 -L 4 -D 11 -L 16 -U 8 -L 6 -R 5 -L 9 -D 14 -L 13 -D 11 -R 3 -L 15 -D 9 -L 10 -D 11 -L 11 -U 2 -L 17 -D 10 -R 13 -L 11 -U 16 -L 8 -U 5 -D 7 -U 11 -D 1 -L 17 -U 12 -L 4 -R 12 -U 4 -R 10 -L 4 -U 11 -D 8 -L 5 -D 6 -U 4 -D 16 -U 6 -D 12 -L 3 -U 3 -L 16 -R 2 -U 14 -R 1 -L 14 -U 11 -L 7 -D 11 -R 2 -D 2 -L 6 -U 10 -L 10 -D 15 -R 12 -D 16 -L 3 -U 15 -R 15 -D 17 -U 17 -L 13 -R 5 -D 12 -L 9 -R 10 -D 4 -L 2 -D 14 -U 8 -R 6 -U 5 -D 1 -L 11 -R 12 -L 17 -U 2 -L 17 -D 2 -R 17 -L 17 -U 3 -D 14 -U 8 -L 14 -D 12 -R 17 -L 18 -D 3 -U 10 -L 7 -U 10 -R 5 -L 15 -D 10 -L 3 -R 12 -D 10 -U 6 -L 17 -D 9 -U 18 -R 7 -U 1 -D 1 -L 9 -U 2 -L 5 -U 9 -L 8 -U 17 -D 17 -L 17 -D 15 -R 13 -U 15 -D 8 -R 13 -D 17 -L 18 -R 5 -D 7 -R 6 -D 1 -R 3 -L 10 -U 10 -D 12 -L 8 -R 11 -U 6 -R 5 -L 9 -R 6 -U 15 -D 4 -R 8 -U 1 -R 18 -L 18 -U 10 -R 17 -D 10 -R 10 -U 16 -R 16 -U 5 -R 7 -D 15 -U 15 -R 2 -U 17 -L 14 -R 1 -U 2 -L 10 -R 17 -L 14 -U 13 -D 1 -L 16 -D 4 -U 9 -L 17 -U 9 -D 9 -L 18 -D 9 -U 5 -L 18 -U 6 -L 5 -U 10 -L 18 -D 13 -R 8 -L 17 -U 9 -L 14 -D 12 -U 2 -D 5 -U 2 -D 17 -L 18 -R 8 -L 7 -R 1 -D 13 -R 11 -D 10 -R 18 -D 2 -U 17 -D 17 -L 4 -R 16 -D 16 -L 2 -D 5 -R 4 -U 9 -R 6 -D 7 -L 13 -U 19 -R 7 -U 17 -L 9 -U 6 -D 1 -L 19 -U 7 -R 6 -L 11 -R 12 -D 6 -L 17 -R 18 -D 17 -L 2 -D 8 -U 15 -D 13 -L 10 -D 10 -L 17 -D 4 -L 12 -U 11 -L 3 -D 6 -U 18 -R 18 -U 16 -L 5 -D 9 -R 17 -L 17 -D 16 -R 12 -D 18 -U 14 -R 1 -U 12 -R 4 -L 6 -U 14 -R 18 -D 6 -U 2 -D 13 -U 15 -L 14 -R 3 -D 7 -L 6 -D 15 -U 17 -L 12 -D 2 -L 12 -R 10 -L 16 -D 15 -L 18 -U 9 -L 7 -U 13 -R 11 -U 9 -L 4 -U 12 -R 14 -D 11 -R 8 -U 4 -L 17 -R 14 -D 15 -R 1 -U 5 -R 3 -L 4 -R 9 -U 1 -D 10 -R 3 -U 16 -D 6 -L 1 -U 15 -D 9 -U 10 -L 11 -U 7 -L 5 -D 19 -L 8 -U 10 -L 19 diff --git a/2022/day9/ref.txt b/2022/day9/ref.txt deleted file mode 100644 index 9874df2..0000000 --- a/2022/day9/ref.txt +++ /dev/null @@ -1,8 +0,0 @@ -R 4 -U 4 -L 3 -D 1 -R 4 -D 1 -L 5 -R 2 diff --git a/2022/day9/ref2.txt b/2022/day9/ref2.txt deleted file mode 100644 index 60bd43b..0000000 --- a/2022/day9/ref2.txt +++ /dev/null @@ -1,8 +0,0 @@ -R 5 -U 8 -L 8 -D 3 -R 17 -D 10 -L 25 -U 20 diff --git a/2022/in/day01.pzl b/2022/in/day01.pzl new file mode 100644 index 0000000..1e725b8 --- /dev/null +++ b/2022/in/day01.pzl @@ -0,0 +1,2262 @@ +5916 +7281 +1715 +3853 +10283 +1455 +7807 +6117 + +33711 +6672 + +3988 +6947 +1674 +1928 +6128 +6361 +3817 +6141 +3301 +5473 +2609 +4262 +6105 + +2725 +7430 +7415 +6997 +4542 +2703 +7148 +2710 +5660 +7372 +2539 +7162 + +5377 +4274 +2793 +2911 +2113 +1077 +4115 +5871 +1079 +4336 +4894 +2088 +5408 +5535 +1982 + +3270 +1347 +4884 +2986 +6067 +5567 +5093 +4421 +2772 +4935 +6153 +1235 +3824 +6460 + +4131 +5183 +5329 +8021 +6096 +6053 +4352 +2016 +5055 +3031 +3379 + +1846 +3964 +16169 +10061 +16400 + +1519 +5378 +6590 +6782 +7072 +4011 +6581 +5871 +6112 +6836 + +3894 +5621 +6342 +6746 +1955 +3348 +5651 +1468 +7232 +3240 +3435 +4566 + +8079 +4170 +5034 + +7439 +1078 +4537 +7020 +2013 +2796 +1627 +1171 +3472 +2611 +3701 +1570 + +2874 +13468 +4739 +16126 +11847 + +37266 +25445 + +9722 +12162 +9507 +5369 + +10547 +5064 +10328 +7331 +2829 +7218 +2094 +8963 + +9828 +4878 +1582 +3494 +8656 + +4271 +8332 +1579 +6029 +13927 +5572 + +6709 +5200 +2009 +7145 +3739 +4750 +7173 +6257 +2520 +4878 +3730 +5773 + +3367 +11772 +4282 +9184 +6947 +2471 + +1112 +1186 +2178 +5993 +2098 +5243 +5223 +1709 +2290 +6327 + +8571 +4827 +4630 +2496 +6101 +10967 +9712 + +5730 +2663 +6857 +3517 +7938 +5069 +1825 +6498 +2716 +6798 +6394 + +2154 +5746 +3630 +4056 +6257 +6249 +4872 +1769 +8320 +1294 + +1469 +6784 +6869 +3459 +6487 +1003 +7296 +8054 +3027 +8338 + +1156 +5197 +6307 +3935 +4874 +2021 +2001 +2077 +3755 +4507 +4116 +1742 +1341 + +2602 +6117 +1059 +4689 +4430 +1216 +4126 +4810 +6270 +2819 +6013 +1589 +4496 +5670 + +5739 +8341 +9572 +6860 +5805 +6627 +3291 +5664 +1907 + +5359 +26291 + +2503 +8306 +6709 +4770 +7460 +5028 +6586 +1286 +4120 +4381 + +1049 +17368 + +5170 +1955 +6256 +2513 +2666 +2571 +1274 +4515 +2359 +5327 +6325 +1141 +5883 + +9948 +18400 +10491 +16743 + +1531 +2231 +3614 +6706 +3516 +5629 +1745 +2780 +2899 +2916 +3928 +4085 + +10012 +12228 +15603 +4551 +3922 + +12264 +13387 +6562 +6050 +12784 +11921 + +34920 +20549 + +4990 +5935 +4252 +4079 +1354 +9274 +3232 +1527 +5978 + +65379 + +1216 +5983 +12805 +6875 +2671 +2381 + +4320 +5687 +6760 +2023 +4263 +1892 +2926 + +3192 +10623 +10169 +12098 +1307 +11324 +2156 + +3749 +2564 +3627 +4701 +5104 +1052 +5035 +3742 +5456 +2150 +2042 +4326 +3053 +5006 +5142 + +5984 + +13641 +30009 + +13225 +5744 +8472 +8526 +5427 + +4593 +6409 +7212 +6755 + +4285 +8123 +6604 +1812 +4145 +9072 +7456 +9813 + +8572 +3737 +9989 +17372 + +3522 +11158 +11713 +1160 +10425 +9709 +7731 + +6503 +3369 +3225 +3899 + +31458 +29242 + +27980 +17901 + +3361 +2869 +1654 +5350 +6317 +8273 +6526 +2723 + +5186 +31304 + +12989 +11754 +11012 +5487 +3127 + +1627 +3229 +2818 +6410 +10184 +6946 +3349 +2976 + +4656 +4290 +3066 +5230 +3503 +1444 +3154 +3748 +2392 +2435 +2211 +2093 +3835 +2402 +1698 + +1311 +6276 + +3748 +4996 +6338 +8906 +11219 +1797 +6467 + +4241 +3011 +6574 +3945 +5947 +6398 +1505 +4799 +5325 +5559 +1735 + +13793 +9236 +9335 + +1031 +7087 +1933 +14085 +12694 + +2019 +2371 + +6900 +6067 +5355 +7415 +3735 +3616 +5010 +4661 +7376 +3971 +2233 +6296 + +7738 +2032 +2170 +6164 +6861 +2420 +5351 +2794 +9647 + +5785 +1391 +2213 +12440 + +2136 +1308 +3209 +3353 +3791 +5916 +5124 +1003 +2489 +5370 +3041 +4007 +2782 +2946 +5378 + +5848 +8012 +5443 +3056 +2550 +8199 +9613 +6809 +2623 + +16460 +1618 + +12239 + +3005 +1728 +7292 +7379 +3241 +5232 +8567 +5880 +4743 +8582 + +9983 +5730 +2346 +7669 +3723 +3102 +10038 +3634 + +5996 +7330 +1061 +5321 +3113 +3533 +6219 +4449 +1353 +5978 +1035 + +2951 +2249 +6361 +1322 +3363 +4667 +4494 +6531 +1530 +2968 +2552 +2249 +5052 + +4376 +13988 + +5472 +3797 +8451 +5091 +5804 +9664 +9061 +1726 +7215 + +2922 +4700 +6062 +5747 +4578 +2098 +1192 +1245 +4752 +1098 +1591 +4644 +5028 + +25366 + +5026 +1139 +6338 +1321 +5559 +3270 +6123 +2535 +1758 +1290 +4424 +3760 +3754 +5044 + +5414 +3035 +5760 +3894 +6727 +2297 +3800 +3285 +3127 +4110 +5435 +1321 + +1363 +5566 +3084 +6064 +1968 +2954 +5078 +5649 +5761 +1265 +5368 +2584 +1814 +4855 +4670 + +4580 +3174 +1343 +4299 +2930 +2209 +4883 +4404 +2899 +4431 +2433 +3444 +2183 +3816 + +2301 +3278 +6603 +5907 +6658 +3429 +3206 +5091 +4527 +3467 +4731 +2694 + +14883 +3132 +16229 +13353 + +4339 +4088 +4244 +1947 +2691 +6081 +1013 +3078 +1197 + +4565 +5429 +19061 +7019 + +5028 +1657 +5177 +1768 +3641 +3897 +3675 +1885 +1966 +1724 +6106 +5721 +5394 +1562 +3637 + +5590 +5469 +4382 +5375 +1656 +3496 +1553 +4737 +5521 +2951 +5633 +6099 +2365 + +3451 +6892 +4327 +6207 +6468 +1638 +6676 +3366 +6793 + +7999 +3815 +2828 +7726 +4747 +6494 +3227 +5024 +7550 + +10475 +24156 +1946 + +61232 + +3562 +11518 +5489 +13618 +8886 +4331 + +5068 +6620 +1899 +1742 +4183 +4792 +3300 +1636 +3644 +1716 +2247 + +21547 +25323 +17987 + +10463 +11220 +7134 +10719 +1274 +11774 + +22985 +19754 + +16499 +24689 + +2529 +4751 +2572 +4097 +6163 +5281 +3617 +3757 +3927 +3603 +3093 +6143 +4730 +3650 + +6393 +1523 +5956 +6591 +2063 +6414 +6834 +6649 +3808 +1286 +4953 +5087 +2796 + +3296 +2685 +5141 +3415 +7132 +4397 +4098 +6860 +5815 +4552 +2464 + +15557 + +1863 +1041 +4563 +1798 +3402 +1270 +3457 +1379 +5354 +2330 +6010 +3812 +2823 +6076 +4226 + +2619 +3202 +3298 +5199 +5356 +2239 +1567 +2088 +3106 +1639 +7116 +6917 + +1569 +7017 +4686 +8636 +8174 +1685 +5343 +4403 +1187 +3285 + +2886 +5763 +1469 +11516 +10773 +2282 +11137 + +10923 +8429 +11772 +8319 +4256 +6490 +2616 + +3491 +28517 + +15778 +16609 +25152 + +4645 +5384 +6744 +4612 +4405 +5450 +3678 +3894 +2232 +7232 +2377 +7056 + +4331 +2122 +4624 +1423 +6583 +5137 +1426 +1919 +2101 +4315 +4855 +6865 +1114 + +7694 +8630 +6754 +5894 +7170 +8178 +8646 +6369 +6162 +5627 + +8027 +1885 +6581 +2173 +3920 +7931 +1907 +6362 +6774 +5027 + +3841 +8648 +5530 +2754 +13794 +8974 + +1363 +5452 +6499 +5721 +2430 +2766 +6536 +1606 +5189 +1008 +6126 +2875 +5931 + +7517 +8727 +3495 +7647 +10130 +8585 +1435 + +3909 +6342 +5378 +11006 +6483 +6426 +4300 + +7358 +4616 +9891 +2965 +11555 +13437 + +6332 +3010 +7403 +1795 +7359 +5017 +6471 +2495 +2589 +7223 + +5359 +10446 +12714 +1727 +8024 + +11690 +3529 +6145 +8147 +15083 + +5461 +4939 +1905 +3342 +3385 +3920 +5609 +3524 +5645 +6882 +4355 +2263 +3464 + +67422 + +2437 +6392 +1206 +1253 +3402 +4722 +2867 +6304 +3139 +2120 +4953 +5095 +3647 + +16783 + +9717 +25377 +17887 + +6852 +8926 +10395 +2107 +8228 +7462 +5239 +10085 + +22658 +18276 +12253 + +3488 +4976 +4196 +3427 +4603 +1579 +6785 +6656 +5143 +1109 +5507 + +14794 +28617 + +2296 +2367 +1865 +9975 +1988 +3950 +7755 +3008 + +8090 +8620 +11016 +11153 +5513 +2683 +4080 + +10557 +2744 +11379 +8339 +1908 +3088 + +8659 +9142 +1838 +10380 +7386 +4599 +9768 +3718 + +2941 +9112 +6492 +2847 +1562 +8956 + +7867 +4589 +9354 +3953 +7557 +2528 +8845 +8845 +1468 + +7065 +10043 +7109 +4063 +2987 + +11800 +5009 +5108 +4783 +12570 + +61504 + +5512 +1432 +6118 +6389 +2752 +5032 +1688 +5662 +6690 +4760 +6248 +3515 +6122 + +4127 +1192 +3521 +4583 +3060 +5306 +2783 +1949 +3633 +5486 +4799 +2056 +2800 +5770 + +19956 +11717 +16021 +3566 + +2387 +4083 +5811 +3849 +3496 +2213 +4107 +4588 +1995 +1228 +5055 +6133 +1759 + +33909 + +4517 +2866 +1068 +4227 +1063 +4361 +3775 +1875 +1073 +3639 +3237 +4783 +5372 +4323 +3275 + +13452 +14869 +23151 + +12595 +9113 +9304 +5185 +5235 +3787 + +6269 +1291 +2735 +3495 +2070 +5552 +4185 +3574 +4856 +4845 +1211 +4071 +5889 +3287 + +4307 +1452 +2411 +8024 +2614 +7541 +5120 +3104 +3937 +2592 + +37000 +12395 + +4725 +8239 +3949 +9498 +9488 +6151 +5996 + +1748 +3706 +6210 +5673 +3791 +5378 +6384 +2993 +4521 +1687 +2437 +3063 +4262 + +10776 + +1329 +2732 +4136 +3270 +7983 +6004 +4285 +7196 +7543 +7826 + +5324 +15037 +11331 +14308 +13527 + +1542 +4771 +4065 +3939 +5925 +6740 +5121 +6854 +1797 +2246 +2036 +5105 +5555 + +9669 +8993 +7817 +5442 +10974 +7509 +8967 + +46998 + +8151 +8919 +5590 +1172 +12588 +12730 + +1584 +7654 + +25613 + +10908 +3168 +6477 +2079 +1440 +6280 + +7201 +5717 +8338 +1740 +2479 +1984 +1751 +8594 +7637 +1089 + +14411 +3771 +7202 +3251 +2650 + +5964 +3451 +1718 +1723 +2658 +2163 +3113 +6200 +2399 +5498 +1571 +5872 +2842 +6443 + +2611 +3129 +3150 +4293 +3362 +5035 +5682 +1950 +4556 +6069 +1061 +3628 +5222 +2266 +2326 + +3979 +3488 +4876 +2074 +5871 +3413 +3968 +4870 +4654 +3475 +3151 +3581 +4218 +1086 + +1521 +3326 +3537 +3223 +2599 +2264 +3004 +2885 +6521 +4096 +3015 +2034 + +9175 +10101 +6721 +5683 +8376 +3584 + +8994 +12517 +5524 +8860 +1700 + +5976 +5345 +1916 +1376 +4610 +4637 +1222 +1823 +5969 +4598 +1266 +3058 +3274 +3196 +2533 + +4151 +4606 +2939 +7433 +7934 +1433 +7226 +3391 +6444 +3292 +3707 + +13678 +1900 +1316 +2999 +4739 + +10131 +8655 +3662 +6570 +9957 +2535 +3312 + +3632 +1192 +6521 +7333 +1874 +6379 +6505 +3737 +5705 +6127 +3099 +5289 + +13342 +10976 +7459 +17656 + +4441 +2033 +4373 +6988 +5037 +3301 +4940 +5675 +1654 +2206 +6505 +1171 + +23804 +22215 + +5917 +1679 +5720 +2327 +2111 +1479 +5369 +1455 +4047 +2609 +4059 +5461 +3726 +5245 +4617 + +3832 + +30019 +36074 + +2301 +2878 +2284 +2359 +6149 +5411 +4323 +2135 +3423 +5649 +5302 +2837 +4670 +5240 + +2535 +3698 +4005 +4530 +3483 +3840 +5770 +6032 +2261 +4189 +4715 +6289 +3112 +5324 + +5734 +4573 +2286 +1328 +5187 +6665 +5591 +2782 +4429 +5214 +7126 + +4378 +1546 +5909 +5252 +12837 +9857 + +6943 +7103 +6885 +2216 +2277 +5110 +3147 +1669 +2405 + +9766 +2431 +8424 +3505 +4371 + +7819 +3429 +2003 +7906 +4196 +4966 +6544 +2194 +5282 +3391 + +5196 +7087 +5152 +4841 +1323 +8180 +8375 +2274 +9193 + +2455 +9393 +3353 +3473 +6684 +8779 +8869 +1379 +6049 + +10423 +7768 +7405 +8893 +6566 +1104 +2981 +6618 + +2320 + +5330 +4166 +6922 +3242 +4383 +7546 +7715 +7988 +8012 +1877 + +10491 +3303 +2681 +2093 +4378 +6167 +2854 +5345 + +3312 +12989 +13062 +7486 +13302 +1205 + +58470 + +13413 +4298 +3133 +7842 +9040 + +4374 +7227 +10320 +2654 +5348 +12005 + +13208 +7384 +11355 +11780 +7356 +1871 + +1615 +6191 +1367 +1969 +4694 +1704 +6816 +3502 +5382 +4902 +4140 +3525 +5102 + +7778 +5765 +3407 +1334 +8488 +4870 +5197 +5158 +7332 +6025 + +3114 +15591 +23604 + +25210 +12504 +22559 + +1906 +6500 +1781 +2858 +4947 +3217 +3577 +4332 +1509 +6900 +1180 +5648 +3821 + +3982 +4400 +4655 +2599 +2430 +1743 +1817 +1626 +1880 +2769 + +9617 +7677 +3341 +4398 +8994 +10662 +5805 + +2984 +4321 +1939 +4864 +10130 +1227 +7189 + +3586 +4161 +3089 +2857 +2931 +8877 +3311 +5180 +4607 + +2539 +4289 +1168 +6262 +4551 +1731 +1292 +2442 +1423 +1619 +6126 +5220 +5577 + +1769 +4044 +1064 +1380 +2814 +7936 +2928 +3053 +3109 +2695 + +3502 +3521 +4581 +2917 +7040 +1876 +4819 +6214 +2779 +2169 +4885 +5352 + +9675 +13851 +9906 +1245 + +7934 +2860 +17685 + +4982 +3620 +2583 +1264 +2218 +6499 +4028 +9082 +2112 + +3761 +3665 +3717 +1112 +9380 +3463 +9677 +5469 +4111 + +6450 +14269 +17362 +1469 + +9305 +1360 +2214 +1625 +6197 +1322 +7217 +1076 +9466 + +2572 +6102 +7582 +13444 +8038 +1523 + +2212 +7180 +6025 +5842 +2433 +5261 +6975 +8067 +1247 +2153 +3311 + +1770 +5359 +6076 +5750 +4681 +8009 +5273 +3051 +7465 +6530 + +3373 +5040 +4365 +4906 +3988 +2941 +4778 +5635 +4277 +5298 +3161 +4611 +3880 +2808 +5151 + +15491 +3325 +4869 +12203 + +20880 +27057 + +5023 +7729 +7517 +6546 +1217 +7548 +8017 +7453 +6909 +7762 + +16756 + +1104 +2160 +4999 +2256 +2061 +2899 +1677 +1202 +4950 +6408 +2614 +1029 +6114 +3983 + +1676 +22625 +24638 + +6252 +6116 +6544 +4736 +4360 +6578 +2026 +8438 +4904 +5071 + +6250 +1604 +5152 +4034 +4210 +2452 +1982 +1462 +1338 +2083 +1618 +4563 +4859 + +1970 +7309 +2481 +7603 +7395 +6379 +6398 +6117 +7246 +2876 +3027 + +5903 +1822 +5861 +4894 +6005 +4571 +4555 +6531 +5464 +3609 +6464 +7134 + +1225 +21041 +7411 + +6970 +7008 +2951 +2131 +5453 +4772 +3154 +6810 +6825 +4469 +1413 + +1056 +5979 +7996 +11013 +4330 +12024 +10085 + +5270 +2532 +2411 +1372 +2690 +5956 +2638 +3667 +4929 +4946 +4141 +1727 +3957 +3987 +5032 + +11710 +2443 +8104 +9459 +5216 +4656 +9892 + +6455 +7683 +6891 +3883 +5618 +3631 +8120 +4878 +3746 + +8872 +14142 +7663 +14581 +7294 + +3656 +7094 +4543 +7459 +4517 +4732 +4501 +3358 +4838 +4205 +2077 +4579 + +7562 +2081 +8129 +6791 +10059 +2783 +4002 +5055 + +3431 +4855 +6062 +7023 +2386 +4158 +6753 +9088 +3315 + +1011 +3354 +5796 +9625 +3172 +5466 +2276 +8053 +4692 + +4232 +5937 +4857 +4515 +3142 +4902 +2726 +1425 +4999 +3980 +3225 +3083 +3054 +5380 +2547 + +1161 +5732 +5773 +1553 +1317 +3005 +1882 +7352 + +7392 +1908 +6482 +3445 +7074 +8522 +9787 +6791 + +3421 +5673 +5874 +4044 +4264 +2367 +4127 +1186 +4172 +5972 +3405 +2272 +1702 +5672 +4004 + +25299 +34008 + +4160 +6041 +8263 +4164 +2317 +2395 +9046 +5315 +7069 + +5362 +7912 +5760 +6799 +1462 +2520 +9667 +6333 +1055 + +35513 +6387 + +10814 +4122 +11320 +6445 +11264 +5322 +7651 + +5518 +3507 +6489 +11057 +7094 +2014 +3874 + +17936 + +2573 +7532 +1617 +5007 +4781 +4238 +5023 +7946 +7218 +6051 +6517 + +5524 +9035 +2723 +10089 +8048 +7010 +3673 + +11048 +4936 +11979 +4390 +2639 +9910 + +50344 + +5440 +5049 +7437 +2658 +8751 +3995 +1955 +4056 +7203 +3175 diff --git a/2022/in/day01.ref b/2022/in/day01.ref new file mode 100644 index 0000000..2094f91 --- /dev/null +++ b/2022/in/day01.ref @@ -0,0 +1,14 @@ +1000 +2000 +3000 + +4000 + +5000 +6000 + +7000 +8000 +9000 + +10000 diff --git a/2022/in/day02.pzl b/2022/in/day02.pzl new file mode 100644 index 0000000..1930858 --- /dev/null +++ b/2022/in/day02.pzl @@ -0,0 +1,2500 @@ +C Z +C Z +A X +A X +B Z +B Z +B Z +A Z +B X +A X +A X +A X +C Z +C Z +C X +A X +A X +A X +C Z +B Z +C Z +A Y +B Z +A X +C Y +A X +A X +C Y +C Z +A Y +B Z +A X +C Y +B Z +B Z +B Z +A X +C X +C X +B Z +A X +C Z +A X +B Z +A Y +C X +A X +C Z +C Z +B Z +C Y +C X +C X +C X +C X +A Y +C Y +C Z +C Y +A X +C Y +A X +B Z +A Y +C X +A X +B Y +A X +C X +C X +C Z +A X +C X +A X +C X +B Z +A Z +B Y +B Z +B Z +A X +C Y +B X +A X +A X +B Z +A X +C X +C Z +C Z +A X +C Z +C Z +C Z +C X +C Z +A X +B Z +B Y +C Z +B Z +B Z +A X +B Z +C Y +C Z +A X +A Y +C Z +A X +B Y +C Y +C Z +A X +C Y +C X +A X +C X +A X +C Z +A X +C Y +A Y +C Z +C X +C Y +C Y +A Y +A Y +C Y +C Y +A Y +A X +C Z +C Z +C X +C X +C Z +A Y +C Z +C Z +A Y +A Y +B Z +A X +B Z +C Y +B Z +C Z +C Y +C Y +B Y +C X +A X +A X +A X +A Y +A X +C Z +C Z +C Z +A X +B Z +A X +B Z +C Y +C Z +A Y +C Y +A X +A X +C Z +B X +C Z +C Z +B Z +B Z +B Z +C Z +C X +C Z +A X +B Z +C Z +C X +A X +A Y +B Y +A X +B Z +A X +C Z +C Z +C X +B Z +C Z +C Z +C X +A X +A X +B Y +C Y +C Z +B Y +A X +B Z +A X +B X +B Z +C X +C X +C Y +C X +B Y +B Z +C X +A Y +C X +C Y +A X +C Z +C Z +C X +B Z +A Y +B Z +A Y +B X +A X +C Z +B Z +C X +C X +C X +A X +C X +B Z +C Z +B Y +B Z +A X +A X +C Z +B Z +A X +A Z +C Y +B Z +C X +C Z +A Y +C X +A X +A X +A Y +B Z +A X +B Z +A Y +B X +C X +C Y +A X +C Z +B X +C Z +C X +C X +C Z +A X +B Z +C Z +C X +C Z +B Y +A X +C X +C Y +A X +C Z +A X +B Z +C X +C X +B Z +C Z +C Z +C Y +A X +C Z +C X +A X +C Y +C Z +C Z +C Y +B Y +B Z +A X +B Y +C X +A X +A X +C Y +C Z +B Z +C X +C X +B Z +C Z +A X +A Y +A X +C Y +A Y +B Y +A X +A X +C X +C X +B Z +A Y +B Z +C Z +A X +A Y +A X +C X +A X +C Z +B Y +C Z +A X +B Z +C Z +C Z +A X +A X +B Z +B Z +B Z +A X +C X +A X +A X +C Y +C Y +C X +C X +A X +A Y +B Y +C Z +C Z +B Y +C X +C Z +A Y +C X +C Z +C X +B Z +C Y +C Z +C X +C Y +C Z +B Z +C Z +B Z +A X +B Y +B Y +C Z +B Z +C X +C Z +C Z +C Z +B Y +B Z +C Z +B Y +A X +A X +C X +A X +C X +A X +B Z +A X +A X +A X +C Z +A Y +A X +C Z +C X +A X +C X +A X +B Z +C Z +C Z +C Z +A X +A X +C Z +A X +B Z +C X +C Z +C Y +B Z +A X +B Z +A X +A Z +B Y +B Z +B Z +B Z +A Y +C Z +A X +B Y +C X +B X +B Z +C X +B Y +C Z +A X +C X +B Z +A X +B Z +A X +A X +B Y +C Y +C X +C X +C Z +A X +C Z +A X +B Y +C X +C Y +B Y +B Y +A Y +C X +A Y +C Z +C Y +A X +C Z +C Z +B Z +A X +A X +A X +A X +B Z +C Z +C X +C X +C Z +A X +B Z +B Y +C Y +A Y +C X +B Z +A Y +B Z +C Z +B Z +C X +A X +B Z +A X +A Y +C Y +B Z +B Z +C X +C Z +C Z +C Z +A X +B Z +A Y +A X +C Y +A Y +B Z +A Y +C Z +A Y +A Y +C X +A X +B Z +A Y +B Z +C X +A X +B Y +B Z +C Z +C Z +B Z +A X +A X +B Y +C Z +C Y +B Z +C Z +A Y +A X +C X +C Z +A X +A X +A Z +C X +C X +B X +B Z +A Y +C X +A Y +C X +C Z +A Y +B Z +A X +B X +A Y +C X +C Y +A Y +C X +B Y +C Y +A X +B Z +A X +C Z +A X +A X +C Z +C Z +B X +C X +A Y +B Z +C Z +A X +A X +C Z +C Y +A X +C X +C Z +C Y +C X +C Y +C X +C Z +C Z +B Z +A X +A Y +B Z +A X +B Z +C X +B Y +A X +A X +A X +A X +B Z +C Z +B Z +B Y +C Z +C X +C Z +C X +B Z +C Z +A X +C Z +C Z +A Y +C X +A X +B Z +A X +B Z +B Y +A X +A X +A X +A Y +C Z +A X +B Y +A Y +B Y +C Y +A X +A X +C Y +A X +C Z +B Z +C X +C Z +A X +B Z +C Z +B Z +B Z +B Z +C X +C Z +A X +A Y +C X +C Z +B Z +B Y +C Z +B Y +B Z +C Z +A Y +B Z +C X +C Y +A X +B Y +A X +C Z +C X +C Z +A X +C X +B Z +B X +C Z +B Z +A Y +A X +A Y +C Z +C Y +A X +B X +A Z +C Y +C X +C Y +C X +C Y +B Z +C X +B Y +C Z +C Y +B Z +A Y +B Y +C Z +C X +B Z +A Y +C Z +C Z +C Z +C Y +C X +C X +B Y +C Z +A Y +C Z +C X +B Y +C X +B Z +B Z +B Z +B Z +C Y +C Z +C X +B X +C Z +C Z +C Z +C X +B Y +B Z +C X +A X +C Y +B X +C X +C X +C Z +A X +A X +B Z +B Z +A X +C Z +A X +A Y +C X +B X +C Y +C Y +A X +A X +C Z +C Z +B Y +B Y +B Z +C X +A X +A Z +C Z +B Y +C Y +C X +C Y +B Z +C X +A X +A X +C Z +C Y +B X +C Z +B Z +A X +C X +A Y +C Y +C Z +B Z +C Z +A X +C Y +B Z +C Y +B X +C Z +C Z +A X +A X +C X +C Z +C X +C Y +C Z +A Y +C X +C Z +B Y +B Y +C Z +A X +C Y +A X +C X +C X +B Y +C Z +C Z +A X +A Y +C Z +B Z +C Y +A X +A X +C Z +C Z +A X +C Z +C Z +B Z +B Z +A X +A Y +A X +C Z +C X +A X +B X +C Z +C Z +B Y +A X +B Z +C X +C Z +C Z +C Z +C X +A Y +A X +A Y +A X +A Y +C Z +C Z +B Z +B Y +A X +B Z +C Z +C X +C Y +C Z +A X +C Y +B Y +B Z +C Z +B Y +C X +C Z +B Y +B Z +B Y +C X +C Z +C X +C Z +B Y +B Z +C X +A X +A Y +B Z +B Y +A X +A X +C Z +A X +A X +C X +A X +C Z +C X +A X +B X +A Y +C X +A X +C Y +A X +C Z +A X +A X +C Z +A X +A X +C Z +A X +B Y +B Z +A X +C X +A X +C X +B Z +C Y +A Y +C Z +B Z +A X +C X +A X +B Y +C X +B Y +B Z +A X +B Z +C X +B Z +A X +A X +C X +A X +C X +A Y +C Z +A X +B Y +B Z +C Z +C Z +A X +C Y +B Z +C X +B Z +B Z +C Z +A X +C X +C X +A Y +A X +C Z +B Z +A X +B X +A X +B Z +B Z +C Z +B Y +C Z +A X +C Z +C Z +C Z +C X +A X +A X +C Y +B Y +C Z +B Y +A X +B Z +A Y +C Y +B Y +C Z +C X +C X +A X +B Y +A X +A X +C Z +C X +C Y +A X +A X +A X +C X +B Z +B Y +A X +B Y +C X +C Z +B Z +A X +C X +C Z +B Y +A X +C Z +B Z +B Z +A X +B Y +A X +B Y +C Z +C Z +B Z +C Z +C Y +A X +B Z +C Z +A Y +C Z +B Z +B Z +C Z +B Y +C Z +C Z +B Z +A Y +C X +C Y +B Z +C X +C Z +A X +A X +C Y +A Z +C Z +C X +B Z +B Z +C Y +A X +A Y +C Z +A X +A X +B Z +A X +C X +C X +B X +B X +A Z +B Y +A X +A Y +C Z +A X +A X +B Z +B Z +C Y +A X +C Y +C Z +A Y +C Y +B X +C X +A X +B Z +A X +A X +A X +A X +A X +B X +A X +C Z +B Z +B Z +B X +A X +C Z +B Z +C Z +C Z +C Y +A X +C Y +C Y +C Z +A Y +C Z +A X +C X +C Z +A X +A Y +C Z +C X +A X +C X +B Y +C Z +B Z +A X +C Y +B Z +B Y +A X +C Z +A X +B Z +C Z +C Y +C Z +A X +A X +B Z +B Y +A X +C X +C Y +B X +C Z +A Y +C X +B Y +B Z +A Y +C Y +C Z +C Z +C X +A X +A X +C X +C X +C Z +C X +C X +B X +B Z +B Z +C X +C Z +C X +A X +A X +A X +C Z +C Y +B Z +C X +C X +A X +C X +C Y +A X +B Y +A X +C Z +C Z +B Z +A X +A X +A X +B Z +C X +A X +B Y +B Z +C X +B Y +C X +B Y +C Z +B X +A X +A X +B Z +A X +A X +A X +B Z +A X +C Z +C X +C Z +A X +C Y +C Y +C Z +C Z +C Z +A X +C Z +C X +C Z +C Z +A X +B Z +C X +C Y +B X +B Z +B Z +A X +C Y +B Y +C Z +B Z +C Z +C X +A Z +C Z +B X +C X +C Z +C Z +C X +C Z +C Z +A X +B Z +C Z +C X +A X +B Z +C Y +C Y +B Y +C X +A X +A X +C Z +B Z +C X +C X +C X +B Y +C Z +B X +C X +C Z +A X +A X +C Z +C Z +C X +C X +C Z +A X +C Z +C X +C Z +C Z +A X +C Z +A X +A X +A X +B Z +A X +B Z +C Z +C Z +A X +C Z +C Z +B Z +C Z +A Y +C X +A X +A X +C X +A X +C X +C X +A Y +B Y +C Z +B Z +C X +B Y +C Y +C X +C Z +A X +C Y +B Z +B Y +A X +B Y +B Y +A X +C X +C X +A X +A Y +C Y +B Z +A X +B Z +A Y +B Y +C Z +C Z +C Z +A Y +B Y +B Y +C Z +B Z +C Z +A X +C Y +A X +B Y +B Z +C X +C Y +A X +B Z +B Z +A X +B Z +C Y +A X +C X +C Z +C Z +A X +C Y +A X +C X +C X +B Z +B Y +A X +C Y +B Z +B Y +A X +C Z +A X +B Y +A X +A X +A X +C X +A X +C Z +B Z +C Z +A X +A X +B Y +C X +C Y +C Z +A X +C Z +B Z +A X +B Z +A X +B Y +B Z +C Z +C Z +C Y +C X +A X +C Z +A Y +A X +B Z +B Y +A X +C X +C Z +B Z +A X +C Z +C X +C Y +A X +A X +C Z +A X +A X +C X +C X +A X +C X +C Z +A X +A X +C Y +A Y +B Z +C X +C X +B Y +B Z +A X +B Z +C Z +C Z +A Y +C Y +C Z +A X +C Z +A X +C Y +C X +B X +B Z +A X +A X +B Z +A X +C X +C X +A Y +A X +A X +C Y +B Z +A X +B Y +C X +B Z +C Y +B Y +A X +C Z +B Y +B Z +A X +B Y +C X +C Z +A X +B Z +A X +C Y +C Z +A X +A X +C Y +C Y +C X +A Y +C Z +B Z +A X +A Y +C Z +C Z +C Z +C Z +B Y +A Y +A X +A X +C X +A X +B Y +C Z +B Z +A Y +C X +C X +A Y +A X +A X +C X +C Z +C X +A X +A Y +C X +C Z +C X +A X +A X +C Z +C X +A X +C X +C Z +A X +A X +C Z +B Y +A X +C Z +C Y +C Z +C Z +B X +B Z +B X +A X +C Z +B X +C Z +A X +C Z +A Y +A Z +B Z +C X +A X +A X +A X +A X +A X +C Z +A X +B X +A Y +A X +C X +A X +A Y +A Y +B Y +C X +A Y +A X +C Z +C Z +C Y +B Z +C X +C Z +A Y +C X +C Y +C X +A X +B Y +C Z +C Z +A X +C Z +B Z +B Z +C X +C X +A X +B Y +C X +C X +A X +C Z +B Y +C Y +C Z +A X +B Z +C Z +B Y +C X +A X +B Y +B Z +A X +C Y +B Z +C Z +C X +A X +C X +A X +B Y +C X +A X +C Y +B Z +B Z +B Z +C Y +A X +A X +A Y +C Z +B X +B Z +A X +A X +C X +A X +C X +A X +C X +A X +A X +A X +A Y +A Y +B Y +A X +B Y +A X +B Y +B Z +B Y +A Y +C Z +C Z +C Z +C Z +A X +C Z +C X +C Y +C Z +B Z +B Z +B Z +C Y +C Z +B Z +C X +A Y +A X +C X +C Y +A Y +B Y +C X +C X +B Y +C Z +A X +C X +C X +C X +C X +C X +C X +B Z +C Y +A X +A X +B Y +B Z +A X +C X +C Z +A X +B X +B Z +C Y +B Z +C Z +C Y +A X +C Z +B Y +C X +A X +A Y +A X +C X +A Y +A Y +C Z +B Z +C Z +C X +C Y +B Y +A X +C X +C Z +B Y +A X +B X +B Z +C Z +B Z +B Z +A X +A Y +A X +A X +B Z +C Z +A X +A Y +C Z +C Z +C Y +A X +B Z +C X +C X +A Y +A X +C X +C Y +C Z +C Y +C X +A X +B Z +C Y +B Z +C X +A X +A X +C X +C Z +C Y +C Y +A X +A Y +C Z +A Y +B Y +C Y +A Y +C Z +B Y +C X +A X +B Z +C Z +A X +A X +B Z +C X +B Z +C Z +C Z +A Y +A X +C X +A X +B Z +C X +A X +A X +B Y +A Z +B Z +C X +C Z +C X +C Z +C X +A X +C Z +B Y +C Y +C Z +A X +C Z +A X +A Z +A X +A X +C Z +A X +B Z +C X +B Z +A X +C X +A X +C X +C Z +B Z +A Y +C Y +C Z +C Z +C X +C Z +A X +A X +B Y +B Z +C Y +B Z +A Y +A X +A X +B Z +B X +A X +B Y +B Z +C X +A X +A X +C Z +B Y +C X +B Y +A Y +A Z +A X +B Y +C X +C Z +C Z +C Y +C Z +A X +B X +C X +A Y +A X +C Z +C Y +C X +B Z +A X +C X +C Z +A X +C Z +A X +C X +C X +A Y +C Z +A X +C X +C Z +C Y +A X +A Y +A Y +C Z +C X +A X +C Z +A Y +A Y +A X +B Z +C Z +B Y +C Z +B Y +C X +C Z +B Y +A X +A X +B Z +A X +C Z +A X +A X +B Y +A X +B Z +A Y +A X +A Y +C Z +B Z +A X +B X +B Y +B Z +A X +A Z +B Y +B Z +C X +B Z +A X +B Z +C Z +B Y +C X +A X +A Y +B Y +A Y +C X +C X +B Y +A Y +B Z +C Z +B Z +A Y +A X +B Z +B Z +A Y +C Z +C Z +B Z +C X +B Z +B Y +B Z +B Z +A X +A X +C X +C Z +B Z +A X +B Z +C Y +C Z +A Z +A X +A X +C Z +A X +C Z +C Z +C Z +B Z +A X +A Y +B X +A X +A X +A X +C Z +B X +B X +A X +C Z +A X +B X +A X +A X +B Z +A X +C Z +C Y +A X +B Z +A X +C Z +B Z +A X +A X +B Y +B Y +C Y +A X +B Z +C Y +A X +C Z +B Z +A X +C Z +B Z +C X +B X +B Z +C Z +A X +B Z +A X +A X +A X +A X +C Z +B Z +B Y +C Z +A X +C Z +A X +C X +C X +A X +B Y +C X +B Z +A Y +C Y +B Z +C Y +C X +A X +B Z +C X +B Y +A X +A Y +B Y +B Y +A X +C X +C Z +B Z +A Y +A X +B Y +C X +B Z +B X +C Y +B X +C X +B Y +C X +A X +C Z +B Z +B Y +B Y +A X +A X +A Z +B Z +B Z +C X +C Y +A Y +C Z +C X +A X +C Z +C X +B Z +A Y +B Z +C Z +B Z +B Z +C X +B Z +C X +C X +B Z +A X +B Y +B Z +A X +C X +A X +C Y +A X +C X +B X +C Z +C Y +C Z +B Z +C X +A X +A X +A Y +C Z +C Y +A Y +C Z +B Z +C Z +C Y +A X +A X +C X +C Z +C Z +A Z +C Z +A X +B Z +C X +C Z +A X +B Z +C X +A X +A Y +B Y +C X +A X +A X +C X +C Y +B Z +C X +A X +C X +B Z +B Y +A Y +C Z +A X +C Z +C Z +A X +C Y +B Z +A Y +B Y +B Y +A X +A X +C X +C X +B Y +C Z +C Z +C Z +C X +C Y +C Z +B Z +C Z +A Y +C Z +A X +B Z +B Y +B Z +A X +A X +A X +A X +C X +C Z +B Z +C X +B Z +C Z +A X +C X +C Z +B Y +A X +C X +A X +B Z +B Z +A X +A X +B Y +C Y +C Y +C X +A X +B Z +C Y +B Z +A Y +B Y +B Y +A X +B Z +A X +C X +C Z +A X +B Z +A Y +C Y +B Z +C Z +C Y +A X +C Y +A X +C X +B Z +C X +A X +C Z +A X +B Y +B Z +C X +C Y +B X +A X +B Z +A X +B Y +C X +C X +C Y +C Y +C X +B Y +C Z +C X +B Z +B Y +C X +A Y +C Z +C Z +C X +B X +B Y +A X +A X +C Z +C X +C Y +A X +C Y +A Y +C Z +C X +A X +C Z +C X +A X +B X +C X +C X +C X +B Y +B Z +C X +C Z +A Y +B Y +C X +C X +A X +B Z +C Z +A X +C Y +C Z +A Y +B Z +C X +C Z +A X +C Z +B Z +B Y +B Z +A X +C X +A Y +C X +C Z +B Y +C Y +C Z +C Z +A X +A X +A X +C Z +B Y +C Z +A X +A X +B Z +B Y +B Z +C Z +B Z +A Y +C Y +C Z +B Y +A X +A X +C Z +B Y +C Z +A X +C X +B Y +A Y +B Z +A X +A X +A X +B Y +A X +C Z +B Y +C Z +B Y +C Z +C X +C Y +C X +A X +A X +A X +C Z +C X +C X +B Y +A Y +B Z +B X +C Z +B Y +A X +C Y +B Z +C X +A X +A X +A X +A X +C X +B Y +A X +A X +B Y +A X +B Z +C Z +A X +A X +A X +A X +B Z +A X +C Z +C X +C Y +B Z +C Z +A X +C Y +C Z +A X +A X +C X +B Z +C X +B Z +C Z +A X +A X +A Y +B Y +C Z +B Y +A X +C X +C Z +C Z +C X +A X +A X +C Z +A X +A Y +A X +A X +C Z +C X +C X +C Z +C X +A X +C Z +C Z +B Z +A Y +A Y +B Y +A X +A X +C X +C X +A X +A X +C X +C X +B Y +C Z +A X +B Y +A X +A X +A X +C X +C Y +B Z +B Y +B Z +C Z +C Z +C X +C Z +A X +B Z +A Y +C Z +B Z +A X +C Y +B Z +C Z +C Y +A X +B Y +C Z +A X +A X +A X +C Z +C Z +C X +A Y +C X +B Z +B Y +A X +C X +C X +A Y +A Y +A X +B X +B Z +B Y +B Y +A X +C Y +A X +C Z +C X +C X +C Z +B Z +B Z +C Y +C X +B Z +C Z +A Y +C Y +A X +B Z +A X +C Y +B Z +B Y +C Z +A X +A X +C Z +B Z +B Z +C Z +C Y +C Z +C Z +C X +A Y +A Y +B Z +C Z +B Y +C X +C X +A Z +C Z +A X +A X +C X +A Y +C X +A X +A X +A X +C Y +A X +B Y +A X +B Y +A X +A X +A Y +C X +C Z +A X +C X +B Y +B Z +B Z +A Y +C Z +C X +C X +B Z +B Z +C X +B Y +A X +B Y +A X +A X +C Y +B X +C X +A Z +A Z +A X +C Z +C Y +C Z +C Y diff --git a/2022/in/day02.ref b/2022/in/day02.ref new file mode 100644 index 0000000..db60e36 --- /dev/null +++ b/2022/in/day02.ref @@ -0,0 +1,3 @@ +A Y +B X +C Z diff --git a/2022/in/day03.pzl b/2022/in/day03.pzl new file mode 100644 index 0000000..adf173d --- /dev/null +++ b/2022/in/day03.pzl @@ -0,0 +1,300 @@ +RCMRQjLLWGTjnlnZwwnZJRZH +qnvfhpSbvSppNddNdSqbbmmdPrwttJVrVPDVrJtHtwPZhrPJ +BFpFzSSqSFFSvQsnWgCMjTLzng +DbWVcVRRdlLffvtqjTWNgQ +mJJMpsmrMrJSHJpsHrFHvBvgHvqfNvzffgTvfj +mMhPjmjmFPJhMSGGcDRlwRdcLGPc +qFcbmWFJqqWpRJcQWpqsQQQwSPCPrHRHCPdNZtSrSHwrNZ +jGMjGLhhhgTvghgtGVjnNCrPVwZSZffSNSwHZZdH +DvzDlvvhnjlMlglglGGhDLpqqcJWWtsmszpWbBBBmQmb +SPLPHQbJSbPsvTLmfDvVDctvWhcDlD +jdRRzzGgJqwrpMRMgdjlcVcWqfWWlfDlmmlWhB +rwgRGdpGprNNLQLsbZJPsn +GZhTVLztHrSzrRBz +MJWjMvsfSCLSnrJn +MjglcgWMdccvZGFtTDchLLLh +rgDHBgBjRgRTgwzwthBnQwmBtB +MsMpSfMsTGTFFLdFFFMFsnNmthNnzhthtwmWnznz +pZMpJdvJMGRHVJJTVHjb +TQVqZVBcBBdBfbpN +zvzrtCshrntCHslPMMMFpZHbNSpb +hLWhGLttsvLvrrWvhzVmQgwJZTRcggTjGcgT +SqRGLHtSbtNTbhjFTjDDpF +WwgJgmdmMdwPDVQQBBhSBFwV +JMPlmlSldWZmRqtLsRGRtvls +mZvmvPNmlNJPJzzmgNvNgdqqdBSpfHBqSsHqHfwpsffq +nhDQDrwLrVVnqfGnsBGBGGsH +VjCDMhbDjLjtFhtLhLhQjNZcZPwWWcczmvglgJJN +wwqnwZGGZqqMpMprpZqwGlLDtNDffdBdNVBmNGBN +TSTchTFbRLfLmVhNDm +SCLRvJQvRFTSRjqMqPZrZnrzZzjp +cJfqGjgGJcsgsPnghgBm +FHHbQQHLWLbPQThqQQRnZs +lLLMSCvrlFMwlSlFcNwqDVVpJcfjzVDf +cRdRDhsDFzPztwJdGP +CVqpCqCgSNfCSQBpjtBwtlBBHLlmGjGG +qfQfCVQfgQnVNpQCMqfcrFrwWDhrDnsvcRDsbc +nFWWzqWZQSqnJzNJzslJVsdV +vBBvsLvbBmBmRlGTNJJvRRTD +tBbpmmPwCmHpMHHMrPCCcSnZSgcFcZgWFscSfgth +LLssTJrqrpvrvvpJvdjggMlgzVgVggPlFPqz +HwZwCZfHNtbMzjgVnFPC +RSttfRwZDtBcZwQMQdrQsdTBQQmW +lJnNhMJqljlNhSrdWlGGGQHwwH +vbTpbCsTFCTmbSmcRfVCfRpwcPdwWQQrdwHwBHrPdwrLLB +sVTmDfmCTVmJjgSzzntDtt +DQtMjZHZHvMbwwTSpqLtpJ +FzVFlsNdVczWPzWcslVfSLqLsqJpSwwsJswLrf +dNFFWcmzWFGLWcdcFgvZvvRHQvjMHDMBGD +MVPTmPvbMgrTmmmmMRMvPvBwFGhhDCdFFwLCLdJhDGFRhG +fqqWfpZWzWsDwhwdhwqGLD +ZWSSftStnnplcQLSbVMBvTbrMlbrBvvl +FSsHDmtFLbbFbLGg +vrvzTzWzzzvppzSzTMnfTggjVgbgjbLjgPPnbGbVGL +pdMwrBpfwfSMTTWdMTpBDCBtmsmltslcBDCshDHs +RgbmfGtmRVgLLSVSnSrWWSHhnh +ccTvlvNppsFnbFnhnWnPHJ +pqNjDBjNNjvpZfmtjbCLbCmb +qsSVpSVfWqgNrVtWptpmSfqbPQljbHPHlDnljRSlwSnwQn +dcGBrMFMdLTGGdlwDwMRHwwMbjHP +CFBvhFhTLFCGvFchChBdBTJtsNpWqfVgtszprmVWNqNgvV +sjsTgNSNqSjgMmVPmmmrpH +RftCcWddRCZfPtCfcQZdcZDcrBllBFpVHprHWlHHpHJJmlFp +thPZRtLcDRdDCTTsqbnwjhvNjq +TQPtgfgdPcdSQhjwHhHBLS +RrqCqVVbJmVRJmsrzmJpWljlSHLSBwSSRWllWv +CVrDNbHrJHVMCbrDJsdFdFcPFZngMfFdTPfP +NNlZgndqmGVGGVZNWQmWmbhbbhpbbhtCbhtgCpCtMF +THfLPTzwJTJrvHRwwsbFbhfbMCpphVtBbB +RjrvzHLzPDvLzPHrTJVrwPndZQNlDZGndZWDdNNcmlQq +tjDsjDGtTjVVbQVCggvrbg +qrWWRBllRFrdlSMCdbSJCP +cZcncRnhphpZWRNtrmsrGpHffmwH +qpRjdcqTcMbbMRTwtnplnwnhPzhBhw +FSFLvNrsPNrsGSLsrFSGfnwBQwZnZwhQQLwwQhnn +sWNVmVmCFNWGsCrrjRTmMjRjPRqgJqJg +sVCnzVpmFpVSnNFCmnmzwRFDWDdMllDccMdwDMjWjWlWjg +BJbPJGGGHPZqZQbpMlWWMWlBljjjgDjh +tGQPpZtfTPpqrHsVLSzmRNLtSFsN +WCDlBWWlvMFWlQWpmSZdZnNmGfJZFZ +LqjTjgtjPcHTTJgLThztcLTLnHnmdSpZdpdffnmZSppfGpSn +PtzqzjtqJgggzhqqccqhrQMsMvMwrCwMlBvMwvvsvs +NMsJfsHTMVbjnLnVsC +htWllhmZcWDWBwhZPcmpVRjnVMRLCCjLFpCwRb +PmZMrBtcPmZWhzDWBtMmJQdddHfQGNSqHqQGGTgr +NmfnnsPlHnGqnlsNNmRPltRLvrhvrSGJSJjvFFFSSFJLhb +PzQZccVPVwgPjrJSJjhFFpQr +TdwBgdTVwzdwzlmNfRqPmqqTql +BVLLBPmPmWBlMlLJnJlBlFQVgdRDdRZRZHpZjQzdRdZQdzQZ +trGTsfbTTgHZptzSZW +fsfTNcCqqNhhVhVFVhVBWLLB +LJwgJNfbCvwCJCwBCCNhhHmGHWWSMWmWmbMmTmmGdS +lzRnnltsstZzzRTfHtHWHGWftfHW +ZFFzVFqzqlFcZscZpRZsNphjhjvjfgJhQgQvwvhC +HHzcFNcHFjhjZjlrghLL +pMZJptpZWCmpttRMCWnnDnBGGDLhlLQrhl +MJsMCTZTTpTJRmMCJzfNsNcfNHqzvvfcww +ZDtllsDlVsrQBqQqRfWl +wvJgpPhhscgvpJFNrRjRrWRjqrRjdjRv +zpsNzCsNCJCCPPHSLzznMnDSLGLM +rfrJjFWrwjpnJjjjfrjJJnFVTgTggRWRRRPPLQgCgQcPPT +sSNbSvqmsSZDZZBtNTTPGgMLMRVcgPCMRb +zZDZzNNSmrfpjFCjzj +dbbNJPBbbrFqNqttqrGbqDcmDQRmFmwcwSnQSDcpwS +ZMMTsHjzLlLcnSVwpRRQ +hZTWjWvTZzTTWhszfwbJhrgJqtBbJGdqNPqt +rrqgHrgtcHJRRjWZlRvnnWBn +QbhVmdFppwbdjnMvlnBwMWZP +TpFDdVTFTDfhHfJcSJSzGZGf +sqNTNZHsHjjFBBwJMMNMcCJD +WGLQPjfWfQWPWmtLSRRRLwBJDbtCCJJCbbwCMBbMBc +RnPdLQfPLRdndGGRvfjlgdrTTgTsrgTrZFzF +BfHbjVVqSBFfMSlCLCDrGSQssvlr +tTpnnzpcPnwzhcnJTDtTPRprGlRGGGCWlQsWvrlvrQGQrC +DPwhghDTpPVHqqdgZbZq +ZzPqfGPtRtqfqPbqfGgGZbrhMjmjBCpHpHNCmHtHjmBHnj +QJwllvFWwDvnwCBBzjwwpC +ccJLVQzWFJvVJlVbgrZZLZLRRPSgdr +rBGbLbnTfnZrQbTnHldqsMmHsqlsWfMd +JcJjCCPzPtjCNHdlGGMlll +jjgpRRvcGbwpThVppT +ttDfjtqfjtpTWWwfTbtlWccNGRSZNGPGhZGhGhcwRh +LbCrHdvzLSSHmSRNmc +JCsBvrvBLzFQbbvlVVnpQpDtWlDqfq +vvdvJBfvdTvRBflBJPNmmffmgPCMwDgsss +rFjqLnMcnqrrtMLtjNgCPCsNzzgsPCGFNs +VqLqnLVZqjMZqWnrVtWlZJJSvHvBdRSvBdRvvJ +zZBDzgQQZLlcglzjrCrCMFjGZbMsHm +PnnJVRfttTtwVnnVFGHVsjCFCjrsMM +wPRpRpRnNTpPNlBdQQDdgDNMhN +bNQpFpnwgtDHpbnhWtffmfmhvhhfsZ +LcdLdwCLPPSVSqqwZGhWdJhGJZhlGlsm +TBwSLPSPVRSVqSVqVrcnpMDDngMgnQpbRQFDNH +vPSvBJZSSdJgpJJZBDGDGrdqGdllGrGDrh +HMtsltFlRVVFtlscRjjMcsWwWChWmrnwDWGwChmjGCWq +MQHNlTVHNVHpbbpbTvvBvf +VsbPMwhbWhzdpzNNggnBcTBWNngQ +RmtZZFZqSjqVHmGQNcBHNLGLGHQH +JjRClqCjZlDZmqSqljFZZqRCvsvPfshhMdwsDwbVwzMzhffb +bfGtRgfDtVmsMzTbmz +LjGZwQLLdjFdHLNMhmzBzMNHNmzN +wjQLCFvnnQGdZLGWSjdqWDfPlrRpqRDDRqrpPr +pqnBZqjCNCqQqmllpHGMGdTfML +PsFgrRvSPsWTwWWQwGHLHW +SrvgsFbrrPJJFsrFPtFSCChBDQjqCqtNhDqhCqNC +RJZRWZWMWZPZffRCPWMdRdfQQQjJzHQsssjrSQFVschVHr +NgpnDgvGTNTVFHFFjVFF +jntvgljpGvlnbLtLbBvnLRPlCCwwCfRqMCCqqqddqw +PFBMVDSVPHMTThtMtSBMMVNbQprHbNRgNRRgLnvpnjnN +scGcrcwlswdGlcqvbQgnnpQnqLjnpp +ffwswWzcmlcWWsmcZhrDFrZMFZBMFzhM +LMdZGqdRSSZmCZMRfQjnggvlvggRcznz +tjjFhBrtpthpslcvvlcQzFnFvQ +jrhbjtpJtbZqCLdWLq +HBGBfBttZzbGbljPdpFddFqRmqRzRN +JDWghDDSDqmmDDpc +CLvgMvChCvLphCTSShhMhQsBbfTfsGsrBfjfrljrZZff +RgHgDqDzqQqgcdHqcZGTNlGffGBDGZBTGZ +LFLPWsmvrbwhwwswrTlTTCBNGFfGlNJZNS +vhrLnvhNmWvMsrvwqMdRcptQtztcjptz +sLMLsThhjgqLlsnsLgTLtMFcRbcPcJSwJbbSbtSWScSt +fvrjjDjvNprdPwwJCCSrWPFP +vfZdGzVzfvGGVGpBjnnMglTsgZlqsMlM +TCVMfCfBnHHfLLPFWb +GgQlGJzNzbzHcHHLlcPLHL +tQbNQGgRZZCVtVMZ +QFFMzwjwngsvsBjGGJWbBbBWbB +QdmVDmVDWRPWVPVV +QHtHSdDpLQCCSHrtqrdrttDfLgvnFvFghNszzwgngFwsNF +RzzTNpSRBzSBVpSRlHNSHBSSGPcLNGtjhPPcbcGhPPhcrnct +CCmmCwwdfFJqDmdwsddhsmvdcMbLfcftttbPnjMPbcjPMPbP +mdZQmvssFdqsFZvsZQmvDvmWzgQBWTRzTzHlppWRglHBQh +VWmnfQWzWWnHWMfmmMVNMfWjtBtBNSNSrlStlpjJBBlgBS +cZZvbwsZsbbZvvscCRdFTTTQrBStdBJgSdhjgBjBjJjpJJ +wCFTCbZbFwwCTvFTwsPGccMzMDWVWfzLGmqHnnDHGLQL +sNQQHbbhdlpdrQllqpsqSpGjZDZGgDnVcnjjnnDZ +WWRLGFvJBJPvzzWjnTncDVZTTPgDff +FLRLGRFRJLBWJmJzMRLCvldrMrbbltdhQQlNqtMbsb +HZllwlZSlSZwhvmQjcZhTqcT +sPzzdgpszpzsBdvvMccvcqPThjhM +JDdsDspLzsdzBgVdBGBzCLlwbbwWSnlnnWffHwJcNlHw +nzCTCnpqJqfCnvvjZjWjPcZrmcmZfW +GNdwgVjwRdRglMrPWLPWZWcNWW +dVblgtRwQgSGVBldbQBbBRJnQJTsJHTqnzzJFpjvHnnn +dqpQQrdqQpLfqcGSdggQdgRMmwHBMMBVNRNDFFBDBgNt +vTzsnZCnlCnshbPlvZJbBzVmmVRDNwtHFBwMDVBR +lJCshjTJbVqfVdjjjG +WlLCJlHLcZcJWcWZJnLHnPqlFtSthTnFNThVtNhVhvNVzVtF +QfbgRsspfDRsgfjqqRRpDbSNSTFzBbTbhttVBhVNBzzT +fwgfRdpdfQDqgPHHZJZCcdGddH +sbrbmVmfddzJntZZtwtMMf +PvhwPRlvvWhFvSRhpFMMJGMFppnBTBGJ +RPlCCLDPDClwHbrdzsdNLzgs +HZgqtgbqRZvzwzCh +BFqmGfrNLQfhzJWBhRJwJR +LFqFQjrcrcqFNMmMdHggntDPMnsDbn +NmWmPblGnnTTNlFGPmNWfwdchdlHdBdwcfCfZppZ +rzqzRjgVrJrzzcFdqdCBFBhZhH +VDRsRMjRJJrQsJPTGFNvsbnsnLGm +nrbrBLTffjNRzGQSJHJQGT +tcZqMcppCmHRQPGGCG +pMDcZhpgcpFDfrwNDDrLVjGj +LWlmlmWqvrBMWWBlmjLThBrfPJZfZZCwPCJJwPCTcggCsd +pSbRHbzpHDVFRQRfPdfnZswgcJcppp +SzRNGbzSWNPLWqLv +vqslblpspsvqBFSqcrrZZDdTfFPHccrf +GWRhWmjwhRcQdCDrPjDP +mcWLVnnWJgGRzVSsVSpSSptNpMvb +wHTPfdTvHlPHGpdvvTddGfcJLLWWwWWcCWrqrVMWCVLL +zhsSNZhnshNSnvZmvsCWWSLrVMcrSCLWJcrq +snDnshmNsjnTdHPfDGvdDT +CfrnFFMnnsRNrNCwFCrdssgqgqvVZvZqlTWBNWZqlJBW +htDhDLhwPWWBqTghgB +DPLPzHDtSPStjLGLtzSMwbdMdnCHrRdCFsmfnR +nBNWCvJmVPNnCPNDJWbtmSwqTttcQsSqtqTjQQ +pMflzLlffRRMRdFlflpLddGdsTjwHqzcvwTqtsStQQjtwwsQ +ZhGlphlpvvLLfFGvMLhfrfWNJNNPVPbnPhnDgDbDDNbJ +ZCpCmVlZvlpBBwvvMCrJhrfhMfjjWMSG +qhstFzFFqzHGzNfSMJSGzM +QnHRPRgRQPtPhtnDsqsbDQPBlTcpBwmVmTvbwdwBTVZVpl +PHmqHdddqBWMmTvMvTGMBWPdwhssnnHlhgsNwhwNHQzwrswh +cSbVcDLtbfLSFzhlhJswgtrsww +bSLlFLFFLDZVLpZVjFLdPMdBBqGGPmmqWGdGjM +FQCnQwFRbnrSfgQgwFRCnswmPLpMppPdMMllpLMptMLldPSZ +cJhhJcJVBJjhfHDvJqThvVDcpdGGqdZGdlltpqWdMqpdGWtG +HhzTjJBzJTvNJHvzvvNBzBFnFCNCbCwrbnRbgRwfwQsg +jRzDgbDDQDgVqqDGsjttNdwqNJZNwNdTWrpB +MHvvvlSHFllMhhMrpWBJtlWdpJrTwZ +mFcFFHmCmtcvfvFFHHLDGnRVzjDgnmgmnzGgGg +JJhDpDdmsJJdgmhrpPjGjFLPPSNpjL +WbznbRGnPfrfRSrN +WqGnnVGVMGHtWTCgJvZHggBggZCg +wlrPQtZQvwrzlvNfZLMZBjbbqjqLbSBjTg +PGJDVdsdhsPVPjbTcLcGLgjqbM +VPDRHWRdsRQvpfmmlw +pvTZTSpTZvGGphNvvbDpdrMqrjlWdPqqjWdldNrd +gmmJmsQfJgcRQJQJJncVQjMWllSnqljqBlPPjPHHHH +QVJQRVcwmJcchwpSZLwGbSZZ +zjrDMWcjDzQjDlWrnqqRBRNhBJRBhBJqnf +TTGPPdgGLwdHGwGPTgLbbvhHtRRNRRSfchqRvSqHRJ +TZTccPpdZwPQjllsspjVzD +jHLHhHFRjhcblDRRWbWTdtppLTntTnMmGLMvTp +BBQBgBBCrrgqJqTtMZMpngdtpvpG +QJJJQrsVsQQfQVPCNqsNSjHdhhdRHDNHFHFclh +RbCLnvdtnLRLRbmLPpHdQCvmNJpJSZSJlgDzglGlzcclcDGD +qBBwMjfsFMjsMbfWbwjlzDZlcWclJczgNDGNDl +wqjhrwwhhCvbQPrRnC +vpWDDDWZQQNGllwHlwWVGj +LCPdqdcdtsvdsCtsddvmVrVjjrBwHlmswmBnmw +fLfvSgvMfdCPqzZNThfNNpTJJQ +CVVVLbNVmGNQbGbGHHbHbvdwgQlwJDTFgJQdDZDJFD +ssWBsBWrjSzWrPtBjnSCTwvFZlDjwZDdgwTDwggv +nntPBqBrPsBfnCRCBWzCVcGVHMLNcbHLNmHqGphp +sbbwwzdsbqQQbQnnNbPNGbznHHRdLTggMVHFVvRZTRVRHMZF +mWffDWfflBpfmcWjWrrJVvgRLlMZVVhMFFTlHhMM +rJJCctmjcfvzsqsqbtbqPP +HGWjHWzVctQVcJVtjvRsvLTddqDDDsjRLg +bbMnlNChZQLZhdDs +SMMMMMMNmMllSlrmCczGcVzBcGWFBQGcrt +VwQlqcLfdLGqdqDjjgZrjZBdttjd +zSPPPJzJGjJjZrCBDt +WMTMsTWsccsvGGwH +hZvbQrjTTZjZcjWNrjnQrcTRpGMqcRfRRGzHfHfpfRMqRz +mDJlFmwCVVwbCVbPBRLMMLpRLwRLHqpR +gsCmgJsPDCtCVlvbhgQjhgQbnQbd +fSgbhhGPGJGhRDmlhhHcHDBH +LsMwQWFswsQMsQMvjslcBcDldBTWfDcHRRdl +ZpVFwLQwVLQvCVsMjrJbbCNPbzSJtPbPPf +VDzWMCpfCcCRDzqDzqNnvLZnfntHQnPPLQlt +sJmdbTBdmmGhFhhbJNNQlJnQlQLHPZNn +sdwmwsdrmMRpDRMLcw +JpWmSWpCnCbJBZHZVldbdfZf +rgdrgNdrjgNPrMjwTssrPdfDZqsVfQHDFlQDDHQVsZfB +TRPdNNLgjNwrRTrJpppzCmzmCLSnvS +QbtQJHQmbmfmBRvbQRzBvldqcFljsGcFdGdvsqqGls +ChCPWhDhWZWJVnZpCNChhVDcMcDdcdgGscjgFjGFlsjjGq +WZNTWNhNZfJJbTJTmR +CHGCHFcZvCrchrZrhsVtsBQjMstfZMMBgg +NNqwDLmDjJgQBmVQ +wdWLLTgWRTWcCcbrHCHhGW +bTZZvNjNjLgTCHcWhccfhWJdhvnc +mnFFmPGSwRPShzVPPWPdhhzr +FRtBFGBMFQFttRwtZgTjCTnQNbNLjTCH +bJSqrSpDJbSNbFjSFCfPWGcwGWPrcTCfwr +tRtLhDsvhQZlHRhRtQQnCnCcdwCPwTwdGcGP +HsHvsmBZvmvsmBhHvLssVqDSNgFMDzgbbDVJzbpMVq +nSSDHRRRQRBCLCQC +qGmfPzGmGlrrrpfrqlzrJtLvBlhQbSCvbtCtlFhLFC +zzpmqqJJVVfJfPfMpfdHNndsNwDSMSDDNcsc +CscQsVMhCsMsMHhhVthtwmgZNRqzWLBRLRLmBWmZWBND +JQJdddrjrLqBgDBq +QbFlTffpMbMnsPCh +gDdbVbVDddDfVfWQfBRLQZsZLRQQ +FCCTrGCMStwGHTtTWLQhLZrlRssRhRhp +FSHqtFTmFwmCsSwGTHtMTSdjjcdnVddgzmbVmjmndbbD +JtBBMcLWLdfFLhMttcWWhfWLrTRGFsbwTmRGwmwbbCTGGsbD +PzQpSQQQvzVvpzHqjvNvQSvGRmmTDVRDmsGsRGsrcDcDGC +cQPHSPvPvZHqcZjzpZjnZNtWlLdtldJWfnfhlJJtLdMg +nPPssTBnMJPdtHPVHtRhpv +bSSgGFWDgWwDFFlmWlcShqdpRqpVcHvvnqpvpRHd +bGFnGljgSsjBCTBszz diff --git a/2022/in/day03.ref b/2022/in/day03.ref new file mode 100644 index 0000000..f17e726 --- /dev/null +++ b/2022/in/day03.ref @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw diff --git a/2022/in/day04.pzl b/2022/in/day04.pzl new file mode 100644 index 0000000..107893a --- /dev/null +++ b/2022/in/day04.pzl @@ -0,0 +1,1000 @@ +15-60,14-59 +32-80,17-79 +47-80,79-80 +64-64,12-63 +93-93,8-92 +35-41,34-41 +7-52,7-8 +28-95,28-94 +43-99,2-43 +74-77,75-78 +44-98,55-69 +2-52,53-53 +71-73,71-72 +35-49,48-49 +84-85,22-85 +88-90,7-89 +18-85,5-85 +4-4,3-82 +22-79,21-79 +6-6,6-84 +61-84,61-84 +66-95,16-94 +12-46,47-47 +93-93,55-93 +23-95,22-99 +16-16,16-58 +67-81,65-80 +58-66,24-66 +39-46,47-79 +9-9,9-89 +18-89,19-68 +4-89,10-47 +5-79,3-5 +12-90,20-91 +78-83,79-89 +6-80,5-81 +37-98,37-38 +33-98,32-97 +42-78,41-43 +31-97,2-98 +24-72,23-73 +6-88,5-29 +80-93,81-94 +5-85,4-84 +21-81,4-89 +45-84,22-44 +57-80,81-81 +46-76,47-77 +22-32,21-72 +5-29,4-29 +11-78,10-78 +61-62,61-92 +17-24,18-24 +57-93,56-97 +1-98,4-50 +5-5,5-42 +10-92,10-11 +8-86,22-87 +10-52,9-9 +3-13,10-14 +1-46,3-56 +85-85,7-84 +88-89,88-96 +1-93,1-93 +58-71,53-60 +79-96,30-79 +5-56,5-57 +42-98,41-99 +3-97,96-97 +55-65,54-56 +73-93,93-94 +18-98,99-99 +2-57,1-69 +41-42,41-77 +10-51,50-52 +73-73,73-89 +31-91,31-31 +6-27,6-61 +1-1,1-84 +21-56,57-57 +30-31,30-31 +24-72,16-72 +59-65,56-65 +18-18,17-99 +87-87,32-88 +30-30,30-60 +12-95,13-95 +29-66,6-65 +2-52,2-53 +93-93,2-93 +2-98,3-3 +19-90,15-18 +12-83,3-13 +21-99,22-22 +5-54,5-54 +43-73,44-73 +15-26,7-25 +52-94,53-95 +67-68,2-67 +2-92,91-92 +72-91,73-78 +20-87,21-87 +27-56,10-56 +20-88,89-89 +5-90,10-90 +11-20,12-21 +4-86,4-86 +44-46,45-98 +10-11,10-63 +8-9,13-98 +23-46,23-61 +71-87,15-86 +33-40,19-39 +7-93,8-93 +18-18,17-76 +3-58,8-59 +42-94,42-42 +12-86,44-87 +20-93,93-96 +12-54,13-36 +41-77,41-76 +20-20,19-96 +13-91,12-90 +3-98,4-4 +6-67,6-66 +25-61,30-54 +61-61,15-61 +24-81,24-24 +45-69,46-68 +56-66,52-98 +50-67,59-68 +2-97,3-72 +33-79,34-51 +56-92,55-91 +3-69,1-68 +34-34,33-34 +93-93,48-92 +22-69,21-30 +2-7,16-83 +87-95,19-88 +93-98,94-97 +42-95,43-95 +6-7,6-83 +23-95,19-86 +30-94,19-98 +59-94,14-95 +24-84,24-83 +31-36,32-35 +20-57,21-57 +2-46,2-2 +9-44,6-9 +25-64,26-65 +21-96,43-97 +1-5,4-50 +58-72,57-59 +96-97,22-96 +3-63,31-64 +18-67,16-16 +38-42,37-43 +9-18,18-82 +53-59,52-52 +6-99,6-6 +56-89,89-97 +88-90,13-89 +24-26,25-85 +46-87,30-45 +63-64,18-64 +12-94,9-13 +51-98,50-50 +8-18,7-17 +25-25,25-32 +5-39,39-40 +7-18,7-7 +23-65,65-94 +17-43,16-44 +32-91,90-90 +3-5,2-5 +28-39,27-42 +12-13,12-65 +2-91,48-92 +93-98,72-87 +31-43,31-42 +12-69,12-59 +2-14,14-81 +17-89,17-90 +20-37,38-62 +6-36,3-22 +6-97,5-7 +71-81,8-77 +18-61,61-84 +86-86,22-85 +9-27,12-79 +1-46,8-47 +12-85,85-98 +57-66,58-65 +62-97,3-99 +5-80,6-20 +39-88,38-88 +54-63,13-64 +17-40,39-57 +9-99,10-82 +24-37,24-24 +64-81,65-81 +2-47,48-48 +5-6,6-6 +26-42,38-91 +17-81,80-81 +4-7,5-8 +23-43,23-34 +98-99,3-97 +43-75,74-75 +58-78,18-78 +60-78,60-78 +10-95,88-96 +77-78,20-78 +36-70,36-57 +19-65,20-66 +1-3,3-15 +1-5,5-47 +23-80,22-22 +38-73,29-38 +41-41,40-57 +8-96,9-89 +28-28,29-96 +22-85,85-97 +20-92,21-92 +35-53,54-54 +45-49,47-48 +20-90,82-91 +38-92,37-93 +1-64,55-62 +56-75,32-55 +13-98,14-92 +4-16,3-16 +52-75,52-74 +1-86,1-87 +12-81,12-82 +35-36,35-97 +9-67,67-68 +14-97,13-14 +6-6,5-69 +73-90,48-95 +24-27,26-28 +25-52,26-50 +75-75,75-98 +22-96,7-18 +60-88,60-89 +47-49,8-48 +19-44,36-67 +4-5,9-96 +30-74,75-75 +10-10,11-77 +47-79,80-80 +12-68,12-69 +38-79,52-91 +29-30,4-29 +40-88,40-49 +4-39,4-39 +15-83,82-84 +69-96,4-96 +5-93,2-94 +49-50,48-48 +68-84,68-84 +16-74,74-86 +7-86,6-8 +47-80,48-74 +3-69,69-71 +49-58,60-78 +31-59,32-60 +4-64,4-64 +59-91,91-91 +90-90,9-89 +70-85,44-86 +24-62,62-85 +1-11,2-94 +15-99,19-95 +12-32,31-32 +56-61,56-72 +7-44,1-7 +1-70,3-71 +29-62,1-61 +7-97,8-97 +90-92,48-91 +54-75,53-74 +2-98,98-98 +2-69,70-70 +45-88,64-89 +28-60,28-28 +10-94,27-98 +32-32,32-49 +63-64,31-62 +15-69,16-70 +16-23,13-16 +20-66,66-67 +16-99,17-93 +62-64,7-63 +97-97,41-78 +41-75,27-39 +2-38,37-37 +13-96,95-96 +7-35,42-75 +39-40,3-40 +4-89,2-5 +22-35,35-36 +6-59,58-59 +23-29,9-28 +77-77,76-76 +12-48,11-96 +57-85,56-84 +90-92,68-91 +97-98,62-98 +23-69,22-69 +4-85,3-95 +50-87,33-88 +33-74,32-74 +20-67,21-47 +5-90,6-91 +50-98,50-98 +4-94,1-26 +4-38,39-78 +91-91,11-90 +54-99,55-99 +80-84,84-85 +33-91,16-33 +62-83,29-61 +23-67,23-68 +26-94,29-91 +21-84,32-84 +48-61,28-48 +15-15,15-76 +20-26,58-79 +75-75,47-74 +30-63,31-63 +16-95,55-96 +45-92,44-66 +59-95,58-99 +19-19,18-19 +30-36,34-36 +5-8,3-9 +6-62,6-6 +90-90,67-89 +31-79,31-84 +20-24,19-23 +33-72,33-86 +59-95,1-59 +4-91,4-97 +92-93,75-92 +42-95,18-99 +95-96,20-95 +23-23,22-50 +5-99,5-6 +16-76,17-17 +48-59,49-76 +51-91,13-91 +10-11,5-10 +19-95,18-18 +41-41,1-41 +40-64,40-78 +56-84,12-83 +17-63,16-84 +15-49,15-15 +31-91,90-92 +38-40,8-85 +46-96,46-79 +54-72,54-54 +2-96,8-97 +2-96,1-98 +15-86,16-44 +10-65,9-65 +79-79,9-78 +18-70,17-70 +68-83,14-68 +28-68,26-29 +18-54,17-21 +61-82,20-60 +47-76,47-93 +6-79,79-85 +13-13,13-91 +40-40,40-92 +9-76,18-83 +17-40,18-98 +45-60,10-54 +26-48,48-63 +15-58,14-92 +69-70,22-69 +5-88,5-89 +42-44,46-89 +38-76,44-77 +1-73,2-79 +52-98,49-82 +5-94,29-99 +13-63,13-94 +72-87,71-86 +27-94,93-94 +35-94,1-93 +43-49,42-48 +72-94,72-72 +43-86,42-85 +1-3,3-94 +42-80,30-92 +22-85,23-84 +39-43,44-44 +36-36,28-35 +12-46,13-78 +14-98,14-98 +69-78,73-79 +91-98,74-91 +10-11,10-96 +32-40,25-39 +50-81,12-80 +88-89,6-88 +48-69,7-48 +4-8,9-93 +74-84,74-75 +27-82,27-82 +1-97,1-1 +43-69,43-68 +13-27,14-27 +9-27,32-78 +22-78,22-23 +47-58,46-46 +19-98,3-98 +27-78,27-78 +74-90,4-74 +44-46,31-45 +35-81,6-55 +6-60,6-59 +10-32,32-33 +23-23,23-53 +4-87,4-86 +96-96,6-95 +1-37,2-38 +77-88,74-87 +3-92,5-93 +15-96,16-92 +37-58,34-36 +40-75,38-74 +2-62,55-62 +43-93,43-43 +77-93,70-77 +56-76,56-77 +2-2,3-88 +2-53,53-60 +30-31,29-36 +30-30,29-88 +42-79,41-80 +75-75,28-74 +18-88,8-87 +13-63,64-64 +3-48,46-49 +12-30,12-12 +3-99,4-94 +3-3,4-64 +30-76,29-29 +12-60,11-54 +9-95,9-95 +66-73,61-73 +10-11,10-11 +42-72,42-44 +8-89,10-89 +25-74,75-75 +33-44,34-45 +28-78,27-77 +48-97,37-93 +46-65,10-64 +17-97,68-96 +50-93,93-95 +22-96,23-97 +2-20,1-86 +6-60,60-80 +33-65,66-66 +23-23,16-22 +41-89,40-62 +17-96,97-97 +70-71,9-70 +11-24,11-35 +8-48,49-49 +78-92,75-91 +21-98,99-99 +12-45,12-13 +36-36,35-58 +9-15,15-98 +43-61,61-89 +52-53,52-74 +2-51,1-5 +29-29,28-75 +1-45,3-47 +5-13,12-13 +17-86,17-17 +4-99,5-99 +77-88,76-90 +50-70,50-51 +3-88,2-87 +4-55,4-75 +8-22,8-8 +76-99,77-96 +14-72,13-90 +1-62,63-94 +11-74,5-10 +37-65,65-65 +10-73,11-91 +34-78,21-34 +47-61,46-62 +11-86,8-10 +14-39,14-40 +8-81,82-89 +85-86,18-85 +14-91,66-97 +20-51,19-43 +1-57,3-57 +14-52,45-53 +37-92,36-99 +84-84,32-83 +45-88,44-81 +30-80,80-92 +6-82,6-6 +9-9,9-87 +26-28,21-27 +1-92,7-93 +32-90,33-33 +26-44,44-66 +24-86,23-86 +19-83,84-99 +28-40,28-30 +18-88,17-87 +62-70,71-71 +3-86,3-3 +20-20,19-90 +7-18,4-17 +29-41,41-42 +24-57,40-58 +15-15,15-54 +19-47,19-20 +63-64,21-63 +29-30,21-30 +61-62,16-61 +16-78,8-15 +63-74,63-63 +68-69,31-69 +3-99,4-99 +28-28,29-39 +72-85,3-67 +64-67,68-68 +75-97,74-74 +11-99,80-88 +10-93,24-79 +93-94,2-94 +1-98,1-99 +2-95,2-2 +20-75,21-75 +26-85,2-26 +9-96,9-99 +85-85,85-85 +59-70,59-70 +22-27,23-23 +41-42,41-52 +2-17,1-16 +41-54,55-55 +8-89,7-9 +13-98,9-13 +10-84,3-84 +40-90,39-39 +12-93,2-93 +5-99,4-99 +30-81,30-88 +1-43,2-54 +72-84,81-85 +2-34,4-35 +7-88,6-88 +66-98,65-99 +93-94,36-94 +66-76,67-77 +15-97,15-98 +53-60,53-54 +1-81,81-86 +51-65,17-50 +11-51,4-50 +16-16,17-82 +44-80,45-81 +32-39,9-38 +51-76,51-75 +58-98,59-79 +60-61,60-61 +7-8,7-87 +32-33,32-32 +35-85,79-97 +20-65,20-66 +5-73,6-74 +15-76,14-82 +43-91,43-99 +8-94,42-95 +19-92,92-94 +2-99,2-2 +91-96,5-92 +7-94,7-7 +82-82,33-82 +1-5,1-2 +87-88,48-87 +88-88,40-88 +24-32,10-31 +15-82,14-81 +18-34,18-33 +40-46,39-73 +40-64,46-65 +3-94,93-95 +41-56,57-85 +48-56,2-48 +79-93,80-94 +45-78,44-66 +49-77,77-89 +29-67,28-28 +53-96,95-97 +6-44,24-99 +7-68,28-84 +6-77,76-78 +3-99,98-99 +11-85,11-85 +24-24,25-96 +44-51,52-64 +88-90,89-98 +2-97,3-97 +15-16,15-58 +5-96,6-92 +2-22,5-21 +11-11,10-87 +95-98,75-96 +8-69,3-7 +25-81,26-74 +25-99,24-68 +92-93,17-92 +2-73,2-2 +87-95,11-87 +20-93,15-97 +7-98,49-98 +4-79,4-31 +50-57,50-57 +67-68,34-68 +57-68,72-90 +3-33,10-34 +26-27,26-80 +8-8,8-82 +93-93,2-93 +12-86,1-12 +4-8,8-89 +14-49,15-50 +5-35,33-33 +92-93,6-93 +28-76,76-93 +47-48,47-85 +7-94,2-43 +43-85,22-43 +71-91,90-91 +14-92,14-91 +5-8,9-78 +13-33,33-33 +32-93,37-86 +37-89,37-90 +51-53,11-52 +11-38,37-37 +4-85,4-89 +6-10,7-14 +21-33,20-91 +9-92,92-92 +29-96,97-97 +13-94,12-98 +11-96,12-97 +35-39,39-70 +31-60,31-95 +18-84,17-83 +5-6,5-89 +63-64,40-63 +89-90,6-90 +88-89,89-90 +69-83,76-83 +16-82,81-82 +5-50,49-80 +9-98,9-99 +75-76,18-75 +1-46,16-46 +45-52,46-52 +18-43,17-19 +8-80,19-81 +11-11,11-86 +20-49,19-49 +54-89,53-90 +9-9,9-95 +21-86,17-21 +57-95,33-94 +13-14,13-53 +7-21,8-21 +3-24,12-25 +89-91,45-90 +82-83,22-82 +57-63,64-72 +6-7,6-70 +19-97,18-18 +30-56,30-31 +24-96,25-98 +1-74,7-99 +24-90,25-63 +44-57,43-58 +62-85,86-86 +15-49,20-50 +20-69,20-69 +38-66,67-77 +8-27,7-91 +8-21,15-51 +19-83,9-10 +23-23,20-22 +19-19,19-88 +4-9,1-8 +15-69,16-16 +20-42,42-69 +43-47,7-46 +5-93,6-94 +10-55,9-54 +8-91,9-27 +42-97,43-98 +20-82,14-81 +19-31,19-70 +7-93,7-8 +28-66,17-28 +65-96,17-95 +40-78,77-79 +51-97,53-96 +25-40,11-25 +19-97,20-96 +23-88,40-88 +81-81,35-80 +71-86,34-86 +13-88,14-89 +63-84,64-85 +56-98,7-97 +31-82,30-81 +58-98,58-99 +36-47,46-46 +80-80,20-79 +59-92,19-91 +19-66,63-84 +70-70,4-70 +66-74,65-79 +5-68,1-4 +17-52,11-17 +6-77,78-78 +10-11,10-25 +13-96,22-61 +5-20,6-31 +18-61,19-50 +6-35,6-34 +12-91,11-90 +1-1,2-21 +2-98,1-99 +28-98,25-38 +34-63,35-76 +20-85,84-85 +11-13,13-31 +72-74,2-73 +3-10,6-25 +46-46,46-88 +34-59,32-60 +77-77,23-77 +11-12,11-83 +4-83,5-84 +10-89,9-88 +82-90,79-83 +1-60,4-61 +29-93,28-92 +1-47,36-48 +51-94,45-93 +30-62,30-33 +3-96,4-97 +57-96,56-96 +44-44,44-94 +44-58,44-45 +3-16,26-84 +31-32,31-78 +41-96,42-96 +34-63,62-90 +20-22,16-23 +61-99,60-98 +3-3,4-21 +2-46,11-47 +7-8,7-64 +7-47,47-70 +49-87,50-89 +22-95,21-77 +87-87,18-86 +30-30,30-99 +54-66,65-66 +77-77,37-76 +11-32,13-32 +93-95,19-93 +3-93,1-92 +37-46,36-55 +12-76,76-85 +18-94,23-74 +10-99,98-99 +23-23,24-31 +4-6,9-96 +42-56,9-45 +9-50,14-51 +22-82,23-83 +21-56,56-92 +1-7,1-1 +96-96,1-96 +61-70,27-70 +2-38,9-37 +19-20,20-56 +61-66,1-67 +42-44,2-43 +6-6,6-90 +40-89,4-14 +96-96,11-96 +54-77,77-88 +29-81,29-81 +12-77,5-76 +4-86,3-86 +57-58,20-57 +18-18,19-62 +9-56,10-57 +26-91,35-92 +6-56,7-81 +1-78,1-61 +76-79,43-76 +96-99,32-97 +27-30,28-31 +94-95,21-94 +22-25,18-24 +40-89,39-41 +20-26,20-20 +28-77,77-88 +2-79,14-80 +17-34,20-33 +26-89,25-88 +5-29,20-73 +9-78,9-77 +11-12,11-79 +25-62,24-26 +1-94,1-2 +90-91,51-90 +8-96,9-97 +6-20,17-40 +42-82,24-42 +10-77,10-76 +32-88,33-87 +58-63,62-62 +64-70,64-71 +34-54,55-55 +88-90,19-88 +77-86,77-78 +3-88,88-89 +42-45,31-44 +99-99,88-97 +81-99,18-81 +7-95,11-88 +4-72,2-92 +7-7,7-26 +10-90,9-89 +2-2,3-65 +7-49,8-49 +51-98,52-92 +27-70,2-67 +65-73,37-69 +81-83,81-82 +40-55,41-54 +4-38,29-90 +53-57,36-57 +79-79,13-78 +18-83,19-84 +11-91,10-93 +7-79,8-80 +18-56,18-18 +80-80,32-79 +2-44,34-63 +6-73,73-74 +12-70,13-71 +25-57,15-56 +40-95,40-41 +1-63,1-2 +7-7,8-71 +23-94,23-23 +51-89,46-88 +67-67,8-66 +24-91,21-25 +67-72,9-71 +8-97,9-97 +50-60,36-60 +1-56,27-32 +2-6,6-91 +67-73,68-74 +30-30,30-37 +4-69,5-68 +94-95,10-95 +30-77,77-78 +10-95,10-60 +37-93,2-32 +8-99,7-7 +57-89,58-99 +1-30,13-54 +31-97,32-32 +82-82,18-82 +10-17,15-18 +74-87,75-88 +21-84,82-86 +11-90,12-17 +26-98,97-99 +35-95,35-95 +2-4,3-75 +3-23,24-60 +85-94,85-95 +1-3,3-22 +53-78,53-79 +1-41,3-40 +54-87,54-65 +3-91,17-90 +41-75,40-74 +44-78,43-77 +75-80,41-74 +43-58,36-47 +61-63,62-64 +16-88,16-87 +4-93,5-94 +56-93,93-98 +27-66,27-27 +51-75,35-74 +50-77,38-76 +51-78,29-77 +12-19,20-86 +4-90,1-71 +13-15,14-25 +75-84,74-74 +7-90,6-65 +56-73,72-74 +20-21,20-83 +7-35,3-35 +1-5,5-46 +30-90,46-90 +10-78,3-87 +25-87,25-25 +5-7,6-92 +24-85,25-84 +14-87,16-87 +3-87,4-88 +53-64,52-52 +71-73,72-73 +19-33,32-43 +3-68,24-69 +4-43,9-44 +62-62,62-69 +32-38,37-38 +14-68,68-70 +64-88,88-95 +27-81,81-84 +2-24,24-24 +52-52,52-90 +1-97,11-95 +9-94,4-93 +5-33,4-24 +37-37,36-76 +1-2,3-64 +85-93,10-85 +39-85,38-84 +47-48,16-47 +30-49,31-50 +46-85,45-45 +7-86,4-85 +23-66,66-67 +54-95,16-27 +2-3,7-59 +57-57,35-56 +20-21,20-90 +35-58,34-54 +14-91,91-93 +9-99,16-97 +24-50,25-50 +18-27,19-86 +78-92,79-79 +23-90,53-91 +27-73,69-70 +90-94,25-90 +8-68,1-67 +50-87,5-50 +25-67,24-67 +3-98,8-97 +85-99,57-98 +34-34,17-35 +8-80,81-81 +14-98,15-99 +1-2,1-99 +24-49,23-43 +36-39,35-39 +1-25,11-26 +2-51,6-97 +33-58,23-57 +25-80,24-26 +26-82,25-25 +44-95,43-94 +61-68,9-62 +27-55,28-48 +22-88,20-23 diff --git a/2022/in/day04.ref b/2022/in/day04.ref new file mode 100644 index 0000000..9f9e9cf --- /dev/null +++ b/2022/in/day04.ref @@ -0,0 +1,6 @@ +2-4,6-8 +2-3,4-5 +5-7,7-9 +2-8,3-7 +6-6,4-6 +2-6,4-8 diff --git a/2022/in/day05.pzl b/2022/in/day05.pzl new file mode 100644 index 0000000..802f66b --- /dev/null +++ b/2022/in/day05.pzl @@ -0,0 +1,513 @@ + [M] [B] [N] +[T] [H] [V] [Q] [H] +[Q] [N] [H] [W] [T] [Q] +[V] [P] [F] [Q] [P] [C] [R] +[C] [D] [T] [N] [N] [L] [S] [J] +[D] [V] [W] [R] [M] [G] [R] [N] [D] +[S] [F] [Q] [Q] [F] [F] [F] [Z] [S] +[N] [M] [F] [D] [R] [C] [W] [T] [M] + 1 2 3 4 5 6 7 8 9 + +move 1 from 8 to 7 +move 1 from 2 to 7 +move 6 from 9 to 8 +move 1 from 9 to 1 +move 1 from 9 to 1 +move 3 from 3 to 6 +move 3 from 3 to 9 +move 1 from 9 to 2 +move 5 from 7 to 9 +move 9 from 1 to 6 +move 3 from 4 to 9 +move 2 from 9 to 2 +move 1 from 4 to 2 +move 1 from 3 to 9 +move 8 from 9 to 4 +move 14 from 6 to 7 +move 1 from 3 to 2 +move 5 from 4 to 2 +move 5 from 5 to 7 +move 4 from 2 to 1 +move 2 from 4 to 9 +move 1 from 4 to 3 +move 3 from 5 to 7 +move 1 from 8 to 6 +move 2 from 8 to 7 +move 2 from 1 to 2 +move 1 from 9 to 7 +move 2 from 1 to 3 +move 5 from 6 to 5 +move 4 from 5 to 7 +move 3 from 8 to 4 +move 20 from 7 to 1 +move 11 from 7 to 5 +move 1 from 6 to 9 +move 3 from 9 to 2 +move 12 from 1 to 9 +move 2 from 8 to 3 +move 4 from 2 to 8 +move 8 from 2 to 1 +move 4 from 8 to 9 +move 1 from 2 to 5 +move 12 from 9 to 7 +move 4 from 4 to 9 +move 4 from 9 to 5 +move 13 from 5 to 4 +move 4 from 4 to 7 +move 1 from 7 to 9 +move 2 from 9 to 5 +move 9 from 1 to 2 +move 1 from 8 to 3 +move 5 from 4 to 2 +move 1 from 3 to 6 +move 7 from 2 to 8 +move 6 from 1 to 6 +move 6 from 8 to 7 +move 6 from 2 to 1 +move 3 from 9 to 3 +move 7 from 3 to 7 +move 4 from 4 to 9 +move 1 from 8 to 9 +move 1 from 3 to 9 +move 1 from 2 to 4 +move 1 from 9 to 6 +move 5 from 1 to 9 +move 1 from 4 to 9 +move 2 from 9 to 1 +move 8 from 6 to 7 +move 4 from 9 to 7 +move 2 from 5 to 2 +move 2 from 1 to 9 +move 14 from 7 to 4 +move 22 from 7 to 2 +move 2 from 7 to 4 +move 3 from 7 to 5 +move 9 from 4 to 7 +move 6 from 2 to 4 +move 8 from 4 to 3 +move 14 from 2 to 9 +move 2 from 3 to 9 +move 3 from 2 to 9 +move 4 from 4 to 2 +move 1 from 4 to 5 +move 1 from 1 to 4 +move 5 from 7 to 8 +move 1 from 1 to 3 +move 4 from 5 to 2 +move 6 from 3 to 9 +move 1 from 3 to 4 +move 4 from 8 to 9 +move 2 from 4 to 6 +move 4 from 5 to 3 +move 1 from 7 to 6 +move 1 from 8 to 5 +move 3 from 3 to 1 +move 33 from 9 to 5 +move 5 from 2 to 1 +move 1 from 3 to 5 +move 1 from 7 to 6 +move 18 from 5 to 1 +move 1 from 2 to 8 +move 6 from 5 to 4 +move 1 from 8 to 7 +move 2 from 4 to 1 +move 4 from 1 to 2 +move 19 from 1 to 2 +move 4 from 6 to 8 +move 4 from 1 to 8 +move 14 from 2 to 9 +move 5 from 2 to 4 +move 1 from 8 to 2 +move 8 from 2 to 5 +move 5 from 8 to 4 +move 4 from 9 to 7 +move 1 from 8 to 1 +move 16 from 5 to 4 +move 15 from 4 to 5 +move 1 from 9 to 5 +move 5 from 7 to 6 +move 2 from 7 to 6 +move 1 from 1 to 9 +move 7 from 6 to 7 +move 1 from 8 to 5 +move 1 from 1 to 9 +move 12 from 5 to 7 +move 7 from 5 to 9 +move 12 from 7 to 2 +move 1 from 7 to 4 +move 7 from 4 to 7 +move 2 from 9 to 4 +move 5 from 4 to 9 +move 8 from 2 to 3 +move 4 from 2 to 4 +move 9 from 4 to 8 +move 6 from 3 to 5 +move 8 from 7 to 3 +move 1 from 4 to 3 +move 7 from 8 to 9 +move 4 from 5 to 4 +move 6 from 3 to 1 +move 4 from 3 to 4 +move 1 from 3 to 6 +move 6 from 4 to 9 +move 1 from 6 to 5 +move 17 from 9 to 4 +move 3 from 7 to 3 +move 1 from 7 to 9 +move 2 from 5 to 3 +move 2 from 1 to 3 +move 2 from 8 to 9 +move 1 from 5 to 1 +move 14 from 4 to 5 +move 2 from 3 to 2 +move 1 from 7 to 6 +move 10 from 9 to 4 +move 12 from 9 to 4 +move 9 from 4 to 5 +move 1 from 2 to 9 +move 13 from 5 to 9 +move 2 from 5 to 1 +move 1 from 2 to 9 +move 3 from 4 to 2 +move 12 from 4 to 7 +move 8 from 5 to 7 +move 1 from 1 to 9 +move 1 from 6 to 4 +move 1 from 5 to 4 +move 1 from 4 to 8 +move 5 from 3 to 4 +move 10 from 9 to 6 +move 3 from 6 to 2 +move 7 from 6 to 5 +move 6 from 5 to 4 +move 1 from 8 to 5 +move 1 from 1 to 4 +move 2 from 7 to 2 +move 5 from 4 to 9 +move 2 from 5 to 8 +move 1 from 1 to 3 +move 2 from 1 to 7 +move 6 from 7 to 9 +move 9 from 9 to 8 +move 1 from 1 to 3 +move 4 from 2 to 7 +move 11 from 7 to 3 +move 11 from 8 to 6 +move 7 from 3 to 1 +move 4 from 7 to 2 +move 3 from 2 to 9 +move 8 from 1 to 5 +move 2 from 7 to 5 +move 2 from 2 to 9 +move 2 from 3 to 9 +move 11 from 4 to 7 +move 7 from 9 to 5 +move 6 from 6 to 5 +move 2 from 2 to 9 +move 1 from 2 to 3 +move 6 from 9 to 4 +move 3 from 9 to 1 +move 4 from 3 to 5 +move 6 from 7 to 1 +move 2 from 6 to 3 +move 2 from 9 to 2 +move 3 from 3 to 2 +move 3 from 6 to 8 +move 2 from 7 to 5 +move 20 from 5 to 6 +move 8 from 5 to 1 +move 1 from 5 to 9 +move 2 from 8 to 4 +move 1 from 8 to 7 +move 16 from 1 to 8 +move 8 from 8 to 9 +move 4 from 2 to 4 +move 1 from 1 to 5 +move 1 from 5 to 4 +move 3 from 8 to 4 +move 14 from 4 to 6 +move 5 from 8 to 7 +move 6 from 7 to 8 +move 29 from 6 to 2 +move 3 from 9 to 8 +move 21 from 2 to 3 +move 1 from 8 to 3 +move 6 from 9 to 4 +move 8 from 3 to 5 +move 7 from 8 to 4 +move 7 from 3 to 9 +move 3 from 7 to 2 +move 12 from 4 to 8 +move 2 from 3 to 1 +move 2 from 9 to 1 +move 1 from 6 to 7 +move 1 from 7 to 6 +move 1 from 6 to 3 +move 3 from 1 to 8 +move 2 from 4 to 1 +move 4 from 6 to 1 +move 5 from 2 to 7 +move 1 from 1 to 2 +move 5 from 1 to 2 +move 2 from 8 to 1 +move 1 from 4 to 5 +move 9 from 8 to 4 +move 3 from 7 to 9 +move 7 from 5 to 7 +move 2 from 5 to 9 +move 4 from 9 to 2 +move 3 from 3 to 2 +move 5 from 2 to 7 +move 2 from 8 to 2 +move 2 from 7 to 3 +move 1 from 8 to 6 +move 2 from 1 to 2 +move 1 from 6 to 7 +move 1 from 8 to 1 +move 12 from 7 to 1 +move 5 from 2 to 7 +move 7 from 4 to 2 +move 2 from 4 to 1 +move 5 from 3 to 8 +move 7 from 1 to 9 +move 4 from 7 to 1 +move 7 from 1 to 5 +move 12 from 9 to 2 +move 27 from 2 to 4 +move 3 from 8 to 9 +move 6 from 2 to 5 +move 6 from 1 to 8 +move 1 from 7 to 6 +move 9 from 5 to 2 +move 3 from 9 to 2 +move 13 from 4 to 5 +move 10 from 2 to 7 +move 1 from 9 to 8 +move 11 from 5 to 7 +move 1 from 8 to 7 +move 1 from 2 to 6 +move 13 from 4 to 3 +move 23 from 7 to 4 +move 1 from 6 to 9 +move 1 from 2 to 4 +move 7 from 3 to 5 +move 1 from 9 to 8 +move 19 from 4 to 1 +move 2 from 4 to 1 +move 1 from 7 to 6 +move 1 from 4 to 5 +move 1 from 5 to 7 +move 11 from 5 to 1 +move 2 from 5 to 4 +move 2 from 6 to 9 +move 3 from 8 to 2 +move 2 from 8 to 1 +move 3 from 2 to 1 +move 1 from 9 to 5 +move 6 from 1 to 3 +move 1 from 9 to 7 +move 2 from 7 to 5 +move 2 from 8 to 6 +move 1 from 3 to 2 +move 2 from 8 to 5 +move 1 from 2 to 1 +move 3 from 4 to 1 +move 3 from 5 to 1 +move 2 from 5 to 1 +move 2 from 6 to 9 +move 1 from 9 to 6 +move 1 from 4 to 5 +move 1 from 9 to 8 +move 1 from 8 to 6 +move 8 from 1 to 6 +move 7 from 1 to 8 +move 9 from 1 to 6 +move 1 from 5 to 3 +move 3 from 8 to 4 +move 11 from 3 to 4 +move 1 from 3 to 6 +move 10 from 6 to 8 +move 13 from 1 to 6 +move 3 from 4 to 5 +move 7 from 8 to 6 +move 3 from 8 to 5 +move 6 from 5 to 3 +move 22 from 6 to 9 +move 4 from 3 to 6 +move 4 from 9 to 5 +move 1 from 1 to 5 +move 2 from 3 to 4 +move 2 from 1 to 5 +move 1 from 9 to 2 +move 5 from 8 to 3 +move 2 from 9 to 2 +move 11 from 6 to 9 +move 3 from 2 to 7 +move 1 from 6 to 7 +move 12 from 9 to 8 +move 4 from 7 to 1 +move 12 from 4 to 8 +move 2 from 4 to 7 +move 1 from 1 to 8 +move 1 from 5 to 1 +move 19 from 8 to 4 +move 4 from 5 to 1 +move 1 from 7 to 4 +move 1 from 7 to 1 +move 3 from 3 to 4 +move 2 from 8 to 4 +move 1 from 5 to 7 +move 1 from 7 to 9 +move 8 from 1 to 8 +move 1 from 1 to 4 +move 1 from 3 to 9 +move 1 from 3 to 5 +move 1 from 5 to 2 +move 7 from 8 to 7 +move 16 from 4 to 7 +move 1 from 7 to 4 +move 3 from 8 to 2 +move 14 from 7 to 4 +move 1 from 5 to 8 +move 5 from 7 to 5 +move 16 from 4 to 5 +move 3 from 5 to 4 +move 3 from 2 to 1 +move 1 from 7 to 9 +move 11 from 4 to 2 +move 3 from 8 to 6 +move 2 from 1 to 8 +move 1 from 4 to 9 +move 18 from 5 to 1 +move 1 from 8 to 7 +move 3 from 7 to 9 +move 18 from 9 to 3 +move 3 from 6 to 9 +move 7 from 1 to 6 +move 1 from 8 to 4 +move 1 from 4 to 9 +move 3 from 6 to 4 +move 5 from 9 to 2 +move 2 from 4 to 7 +move 7 from 2 to 8 +move 1 from 7 to 3 +move 2 from 6 to 8 +move 1 from 9 to 5 +move 1 from 6 to 8 +move 1 from 4 to 8 +move 1 from 5 to 3 +move 1 from 7 to 5 +move 8 from 8 to 7 +move 10 from 2 to 6 +move 1 from 9 to 3 +move 6 from 6 to 2 +move 5 from 6 to 2 +move 7 from 2 to 7 +move 12 from 1 to 6 +move 2 from 2 to 1 +move 1 from 2 to 5 +move 4 from 7 to 6 +move 12 from 3 to 1 +move 2 from 7 to 2 +move 9 from 3 to 8 +move 1 from 2 to 6 +move 1 from 5 to 4 +move 9 from 6 to 5 +move 1 from 7 to 6 +move 1 from 4 to 9 +move 9 from 6 to 7 +move 7 from 8 to 3 +move 6 from 3 to 1 +move 4 from 8 to 3 +move 5 from 3 to 1 +move 1 from 9 to 8 +move 2 from 8 to 9 +move 5 from 5 to 7 +move 14 from 7 to 8 +move 1 from 9 to 4 +move 2 from 2 to 1 +move 3 from 5 to 3 +move 2 from 3 to 1 +move 1 from 4 to 6 +move 6 from 8 to 6 +move 6 from 8 to 3 +move 3 from 6 to 1 +move 2 from 8 to 9 +move 19 from 1 to 6 +move 3 from 9 to 3 +move 6 from 3 to 4 +move 6 from 6 to 2 +move 4 from 3 to 9 +move 1 from 7 to 9 +move 2 from 5 to 7 +move 5 from 9 to 6 +move 6 from 7 to 2 +move 11 from 2 to 5 +move 2 from 7 to 4 +move 4 from 4 to 3 +move 2 from 4 to 8 +move 12 from 1 to 2 +move 1 from 8 to 2 +move 8 from 5 to 7 +move 2 from 4 to 9 +move 2 from 7 to 1 +move 4 from 2 to 3 +move 1 from 8 to 6 +move 1 from 1 to 5 +move 2 from 9 to 1 +move 2 from 7 to 3 +move 2 from 5 to 2 +move 1 from 5 to 7 +move 2 from 7 to 8 +move 1 from 5 to 7 +move 5 from 3 to 4 +move 3 from 1 to 7 +move 1 from 2 to 4 +move 15 from 6 to 1 +move 4 from 4 to 1 +move 4 from 2 to 3 +move 8 from 3 to 2 +move 5 from 2 to 4 +move 1 from 8 to 6 +move 1 from 8 to 9 +move 1 from 3 to 1 +move 3 from 7 to 3 +move 5 from 7 to 6 +move 4 from 2 to 9 +move 6 from 2 to 6 +move 4 from 9 to 6 +move 12 from 1 to 5 +move 6 from 4 to 1 +move 1 from 3 to 6 +move 4 from 5 to 8 +move 7 from 5 to 3 +move 3 from 8 to 2 +move 1 from 2 to 3 +move 1 from 9 to 5 +move 1 from 4 to 5 +move 1 from 8 to 5 +move 8 from 6 to 9 +move 10 from 1 to 4 +move 3 from 6 to 1 +move 9 from 3 to 6 +move 1 from 3 to 8 +move 1 from 2 to 4 +move 6 from 9 to 1 +move 1 from 1 to 4 +move 10 from 1 to 6 +move 1 from 8 to 6 +move 13 from 6 to 7 +move 1 from 2 to 1 +move 1 from 9 to 6 +move 9 from 7 to 5 +move 1 from 9 to 4 +move 3 from 7 to 1 +move 3 from 5 to 6 +move 10 from 4 to 7 +move 5 from 6 to 5 +move 3 from 4 to 5 +move 13 from 6 to 9 +move 7 from 5 to 3 +move 6 from 3 to 2 +move 5 from 6 to 4 +move 4 from 2 to 8 diff --git a/2022/in/day05.ref b/2022/in/day05.ref new file mode 100644 index 0000000..84933bb --- /dev/null +++ b/2022/in/day05.ref @@ -0,0 +1,9 @@ + [D] +[N] [C] +[Z] [M] [P] + 1 2 3 + +move 1 from 2 to 1 +move 3 from 1 to 3 +move 2 from 2 to 1 +move 1 from 1 to 2 diff --git a/2022/in/day05_mod.pzl b/2022/in/day05_mod.pzl new file mode 100644 index 0000000..cb5b571 --- /dev/null +++ b/2022/in/day05_mod.pzl @@ -0,0 +1,513 @@ +NSDCVQT +MFV +FQWDPNHM +DQRTF +RFMNQHVB +CFGNPWQ +WFRLCT +TZNS +MSDJRQHN + +move 1 from 8 to 7 +move 1 from 2 to 7 +move 6 from 9 to 8 +move 1 from 9 to 1 +move 1 from 9 to 1 +move 3 from 3 to 6 +move 3 from 3 to 9 +move 1 from 9 to 2 +move 5 from 7 to 9 +move 9 from 1 to 6 +move 3 from 4 to 9 +move 2 from 9 to 2 +move 1 from 4 to 2 +move 1 from 3 to 9 +move 8 from 9 to 4 +move 14 from 6 to 7 +move 1 from 3 to 2 +move 5 from 4 to 2 +move 5 from 5 to 7 +move 4 from 2 to 1 +move 2 from 4 to 9 +move 1 from 4 to 3 +move 3 from 5 to 7 +move 1 from 8 to 6 +move 2 from 8 to 7 +move 2 from 1 to 2 +move 1 from 9 to 7 +move 2 from 1 to 3 +move 5 from 6 to 5 +move 4 from 5 to 7 +move 3 from 8 to 4 +move 20 from 7 to 1 +move 11 from 7 to 5 +move 1 from 6 to 9 +move 3 from 9 to 2 +move 12 from 1 to 9 +move 2 from 8 to 3 +move 4 from 2 to 8 +move 8 from 2 to 1 +move 4 from 8 to 9 +move 1 from 2 to 5 +move 12 from 9 to 7 +move 4 from 4 to 9 +move 4 from 9 to 5 +move 13 from 5 to 4 +move 4 from 4 to 7 +move 1 from 7 to 9 +move 2 from 9 to 5 +move 9 from 1 to 2 +move 1 from 8 to 3 +move 5 from 4 to 2 +move 1 from 3 to 6 +move 7 from 2 to 8 +move 6 from 1 to 6 +move 6 from 8 to 7 +move 6 from 2 to 1 +move 3 from 9 to 3 +move 7 from 3 to 7 +move 4 from 4 to 9 +move 1 from 8 to 9 +move 1 from 3 to 9 +move 1 from 2 to 4 +move 1 from 9 to 6 +move 5 from 1 to 9 +move 1 from 4 to 9 +move 2 from 9 to 1 +move 8 from 6 to 7 +move 4 from 9 to 7 +move 2 from 5 to 2 +move 2 from 1 to 9 +move 14 from 7 to 4 +move 22 from 7 to 2 +move 2 from 7 to 4 +move 3 from 7 to 5 +move 9 from 4 to 7 +move 6 from 2 to 4 +move 8 from 4 to 3 +move 14 from 2 to 9 +move 2 from 3 to 9 +move 3 from 2 to 9 +move 4 from 4 to 2 +move 1 from 4 to 5 +move 1 from 1 to 4 +move 5 from 7 to 8 +move 1 from 1 to 3 +move 4 from 5 to 2 +move 6 from 3 to 9 +move 1 from 3 to 4 +move 4 from 8 to 9 +move 2 from 4 to 6 +move 4 from 5 to 3 +move 1 from 7 to 6 +move 1 from 8 to 5 +move 3 from 3 to 1 +move 33 from 9 to 5 +move 5 from 2 to 1 +move 1 from 3 to 5 +move 1 from 7 to 6 +move 18 from 5 to 1 +move 1 from 2 to 8 +move 6 from 5 to 4 +move 1 from 8 to 7 +move 2 from 4 to 1 +move 4 from 1 to 2 +move 19 from 1 to 2 +move 4 from 6 to 8 +move 4 from 1 to 8 +move 14 from 2 to 9 +move 5 from 2 to 4 +move 1 from 8 to 2 +move 8 from 2 to 5 +move 5 from 8 to 4 +move 4 from 9 to 7 +move 1 from 8 to 1 +move 16 from 5 to 4 +move 15 from 4 to 5 +move 1 from 9 to 5 +move 5 from 7 to 6 +move 2 from 7 to 6 +move 1 from 1 to 9 +move 7 from 6 to 7 +move 1 from 8 to 5 +move 1 from 1 to 9 +move 12 from 5 to 7 +move 7 from 5 to 9 +move 12 from 7 to 2 +move 1 from 7 to 4 +move 7 from 4 to 7 +move 2 from 9 to 4 +move 5 from 4 to 9 +move 8 from 2 to 3 +move 4 from 2 to 4 +move 9 from 4 to 8 +move 6 from 3 to 5 +move 8 from 7 to 3 +move 1 from 4 to 3 +move 7 from 8 to 9 +move 4 from 5 to 4 +move 6 from 3 to 1 +move 4 from 3 to 4 +move 1 from 3 to 6 +move 6 from 4 to 9 +move 1 from 6 to 5 +move 17 from 9 to 4 +move 3 from 7 to 3 +move 1 from 7 to 9 +move 2 from 5 to 3 +move 2 from 1 to 3 +move 2 from 8 to 9 +move 1 from 5 to 1 +move 14 from 4 to 5 +move 2 from 3 to 2 +move 1 from 7 to 6 +move 10 from 9 to 4 +move 12 from 9 to 4 +move 9 from 4 to 5 +move 1 from 2 to 9 +move 13 from 5 to 9 +move 2 from 5 to 1 +move 1 from 2 to 9 +move 3 from 4 to 2 +move 12 from 4 to 7 +move 8 from 5 to 7 +move 1 from 1 to 9 +move 1 from 6 to 4 +move 1 from 5 to 4 +move 1 from 4 to 8 +move 5 from 3 to 4 +move 10 from 9 to 6 +move 3 from 6 to 2 +move 7 from 6 to 5 +move 6 from 5 to 4 +move 1 from 8 to 5 +move 1 from 1 to 4 +move 2 from 7 to 2 +move 5 from 4 to 9 +move 2 from 5 to 8 +move 1 from 1 to 3 +move 2 from 1 to 7 +move 6 from 7 to 9 +move 9 from 9 to 8 +move 1 from 1 to 3 +move 4 from 2 to 7 +move 11 from 7 to 3 +move 11 from 8 to 6 +move 7 from 3 to 1 +move 4 from 7 to 2 +move 3 from 2 to 9 +move 8 from 1 to 5 +move 2 from 7 to 5 +move 2 from 2 to 9 +move 2 from 3 to 9 +move 11 from 4 to 7 +move 7 from 9 to 5 +move 6 from 6 to 5 +move 2 from 2 to 9 +move 1 from 2 to 3 +move 6 from 9 to 4 +move 3 from 9 to 1 +move 4 from 3 to 5 +move 6 from 7 to 1 +move 2 from 6 to 3 +move 2 from 9 to 2 +move 3 from 3 to 2 +move 3 from 6 to 8 +move 2 from 7 to 5 +move 20 from 5 to 6 +move 8 from 5 to 1 +move 1 from 5 to 9 +move 2 from 8 to 4 +move 1 from 8 to 7 +move 16 from 1 to 8 +move 8 from 8 to 9 +move 4 from 2 to 4 +move 1 from 1 to 5 +move 1 from 5 to 4 +move 3 from 8 to 4 +move 14 from 4 to 6 +move 5 from 8 to 7 +move 6 from 7 to 8 +move 29 from 6 to 2 +move 3 from 9 to 8 +move 21 from 2 to 3 +move 1 from 8 to 3 +move 6 from 9 to 4 +move 8 from 3 to 5 +move 7 from 8 to 4 +move 7 from 3 to 9 +move 3 from 7 to 2 +move 12 from 4 to 8 +move 2 from 3 to 1 +move 2 from 9 to 1 +move 1 from 6 to 7 +move 1 from 7 to 6 +move 1 from 6 to 3 +move 3 from 1 to 8 +move 2 from 4 to 1 +move 4 from 6 to 1 +move 5 from 2 to 7 +move 1 from 1 to 2 +move 5 from 1 to 2 +move 2 from 8 to 1 +move 1 from 4 to 5 +move 9 from 8 to 4 +move 3 from 7 to 9 +move 7 from 5 to 7 +move 2 from 5 to 9 +move 4 from 9 to 2 +move 3 from 3 to 2 +move 5 from 2 to 7 +move 2 from 8 to 2 +move 2 from 7 to 3 +move 1 from 8 to 6 +move 2 from 1 to 2 +move 1 from 6 to 7 +move 1 from 8 to 1 +move 12 from 7 to 1 +move 5 from 2 to 7 +move 7 from 4 to 2 +move 2 from 4 to 1 +move 5 from 3 to 8 +move 7 from 1 to 9 +move 4 from 7 to 1 +move 7 from 1 to 5 +move 12 from 9 to 2 +move 27 from 2 to 4 +move 3 from 8 to 9 +move 6 from 2 to 5 +move 6 from 1 to 8 +move 1 from 7 to 6 +move 9 from 5 to 2 +move 3 from 9 to 2 +move 13 from 4 to 5 +move 10 from 2 to 7 +move 1 from 9 to 8 +move 11 from 5 to 7 +move 1 from 8 to 7 +move 1 from 2 to 6 +move 13 from 4 to 3 +move 23 from 7 to 4 +move 1 from 6 to 9 +move 1 from 2 to 4 +move 7 from 3 to 5 +move 1 from 9 to 8 +move 19 from 4 to 1 +move 2 from 4 to 1 +move 1 from 7 to 6 +move 1 from 4 to 5 +move 1 from 5 to 7 +move 11 from 5 to 1 +move 2 from 5 to 4 +move 2 from 6 to 9 +move 3 from 8 to 2 +move 2 from 8 to 1 +move 3 from 2 to 1 +move 1 from 9 to 5 +move 6 from 1 to 3 +move 1 from 9 to 7 +move 2 from 7 to 5 +move 2 from 8 to 6 +move 1 from 3 to 2 +move 2 from 8 to 5 +move 1 from 2 to 1 +move 3 from 4 to 1 +move 3 from 5 to 1 +move 2 from 5 to 1 +move 2 from 6 to 9 +move 1 from 9 to 6 +move 1 from 4 to 5 +move 1 from 9 to 8 +move 1 from 8 to 6 +move 8 from 1 to 6 +move 7 from 1 to 8 +move 9 from 1 to 6 +move 1 from 5 to 3 +move 3 from 8 to 4 +move 11 from 3 to 4 +move 1 from 3 to 6 +move 10 from 6 to 8 +move 13 from 1 to 6 +move 3 from 4 to 5 +move 7 from 8 to 6 +move 3 from 8 to 5 +move 6 from 5 to 3 +move 22 from 6 to 9 +move 4 from 3 to 6 +move 4 from 9 to 5 +move 1 from 1 to 5 +move 2 from 3 to 4 +move 2 from 1 to 5 +move 1 from 9 to 2 +move 5 from 8 to 3 +move 2 from 9 to 2 +move 11 from 6 to 9 +move 3 from 2 to 7 +move 1 from 6 to 7 +move 12 from 9 to 8 +move 4 from 7 to 1 +move 12 from 4 to 8 +move 2 from 4 to 7 +move 1 from 1 to 8 +move 1 from 5 to 1 +move 19 from 8 to 4 +move 4 from 5 to 1 +move 1 from 7 to 4 +move 1 from 7 to 1 +move 3 from 3 to 4 +move 2 from 8 to 4 +move 1 from 5 to 7 +move 1 from 7 to 9 +move 8 from 1 to 8 +move 1 from 1 to 4 +move 1 from 3 to 9 +move 1 from 3 to 5 +move 1 from 5 to 2 +move 7 from 8 to 7 +move 16 from 4 to 7 +move 1 from 7 to 4 +move 3 from 8 to 2 +move 14 from 7 to 4 +move 1 from 5 to 8 +move 5 from 7 to 5 +move 16 from 4 to 5 +move 3 from 5 to 4 +move 3 from 2 to 1 +move 1 from 7 to 9 +move 11 from 4 to 2 +move 3 from 8 to 6 +move 2 from 1 to 8 +move 1 from 4 to 9 +move 18 from 5 to 1 +move 1 from 8 to 7 +move 3 from 7 to 9 +move 18 from 9 to 3 +move 3 from 6 to 9 +move 7 from 1 to 6 +move 1 from 8 to 4 +move 1 from 4 to 9 +move 3 from 6 to 4 +move 5 from 9 to 2 +move 2 from 4 to 7 +move 7 from 2 to 8 +move 1 from 7 to 3 +move 2 from 6 to 8 +move 1 from 9 to 5 +move 1 from 6 to 8 +move 1 from 4 to 8 +move 1 from 5 to 3 +move 1 from 7 to 5 +move 8 from 8 to 7 +move 10 from 2 to 6 +move 1 from 9 to 3 +move 6 from 6 to 2 +move 5 from 6 to 2 +move 7 from 2 to 7 +move 12 from 1 to 6 +move 2 from 2 to 1 +move 1 from 2 to 5 +move 4 from 7 to 6 +move 12 from 3 to 1 +move 2 from 7 to 2 +move 9 from 3 to 8 +move 1 from 2 to 6 +move 1 from 5 to 4 +move 9 from 6 to 5 +move 1 from 7 to 6 +move 1 from 4 to 9 +move 9 from 6 to 7 +move 7 from 8 to 3 +move 6 from 3 to 1 +move 4 from 8 to 3 +move 5 from 3 to 1 +move 1 from 9 to 8 +move 2 from 8 to 9 +move 5 from 5 to 7 +move 14 from 7 to 8 +move 1 from 9 to 4 +move 2 from 2 to 1 +move 3 from 5 to 3 +move 2 from 3 to 1 +move 1 from 4 to 6 +move 6 from 8 to 6 +move 6 from 8 to 3 +move 3 from 6 to 1 +move 2 from 8 to 9 +move 19 from 1 to 6 +move 3 from 9 to 3 +move 6 from 3 to 4 +move 6 from 6 to 2 +move 4 from 3 to 9 +move 1 from 7 to 9 +move 2 from 5 to 7 +move 5 from 9 to 6 +move 6 from 7 to 2 +move 11 from 2 to 5 +move 2 from 7 to 4 +move 4 from 4 to 3 +move 2 from 4 to 8 +move 12 from 1 to 2 +move 1 from 8 to 2 +move 8 from 5 to 7 +move 2 from 4 to 9 +move 2 from 7 to 1 +move 4 from 2 to 3 +move 1 from 8 to 6 +move 1 from 1 to 5 +move 2 from 9 to 1 +move 2 from 7 to 3 +move 2 from 5 to 2 +move 1 from 5 to 7 +move 2 from 7 to 8 +move 1 from 5 to 7 +move 5 from 3 to 4 +move 3 from 1 to 7 +move 1 from 2 to 4 +move 15 from 6 to 1 +move 4 from 4 to 1 +move 4 from 2 to 3 +move 8 from 3 to 2 +move 5 from 2 to 4 +move 1 from 8 to 6 +move 1 from 8 to 9 +move 1 from 3 to 1 +move 3 from 7 to 3 +move 5 from 7 to 6 +move 4 from 2 to 9 +move 6 from 2 to 6 +move 4 from 9 to 6 +move 12 from 1 to 5 +move 6 from 4 to 1 +move 1 from 3 to 6 +move 4 from 5 to 8 +move 7 from 5 to 3 +move 3 from 8 to 2 +move 1 from 2 to 3 +move 1 from 9 to 5 +move 1 from 4 to 5 +move 1 from 8 to 5 +move 8 from 6 to 9 +move 10 from 1 to 4 +move 3 from 6 to 1 +move 9 from 3 to 6 +move 1 from 3 to 8 +move 1 from 2 to 4 +move 6 from 9 to 1 +move 1 from 1 to 4 +move 10 from 1 to 6 +move 1 from 8 to 6 +move 13 from 6 to 7 +move 1 from 2 to 1 +move 1 from 9 to 6 +move 9 from 7 to 5 +move 1 from 9 to 4 +move 3 from 7 to 1 +move 3 from 5 to 6 +move 10 from 4 to 7 +move 5 from 6 to 5 +move 3 from 4 to 5 +move 13 from 6 to 9 +move 7 from 5 to 3 +move 6 from 3 to 2 +move 5 from 6 to 4 +move 4 from 2 to 8 diff --git a/2022/in/day05_mod.ref b/2022/in/day05_mod.ref new file mode 100644 index 0000000..baec122 --- /dev/null +++ b/2022/in/day05_mod.ref @@ -0,0 +1,8 @@ +ZN +MCD +P + +move 1 from 2 to 1 +move 3 from 1 to 3 +move 2 from 2 to 1 +move 1 from 1 to 2 diff --git a/2022/in/day06.pzl b/2022/in/day06.pzl new file mode 100644 index 0000000..1db72f1 --- /dev/null +++ b/2022/in/day06.pzl @@ -0,0 +1 @@ +cdhccdbdggfjjgssjzjzggjnjpnpbbzbnzzflfjfnfrrpvrvbrvvrvggvlvnnbrnrcncsnndbndbnndbdndfdrdvrvvndvvbggnrrnbrnntffgttwzwnnmvmcvvhsstzzlnlwlttbzzpnpmnnjvjnntmnmfftwwrfwrwswmmfrrfrrgbrbffwvvshvhrhmhththbbmqbmqqlslhssrmmqdmmjtmtmjtmjtttnwnvwvqwqjjnbbbdbqbnbpnbnllglcglcgcdczdznnqhhfthtmtlldqlqrrmddrldlzdllvddjcddqfqbqsbqqnllwppqpqzzrbbdppzsppjdpdqpdqdfqfrrwbwrwwqcqcsqsvvpbvbbztzptzzpccdtdhdffvqvcvzzmwzwddjfdffplplqlvlmmmvggpmpvpddpbptplpvlplvpvvnrvnnbqqqjhhwfhwfhwhqhmmpphqpqvppfzpzjzddgzzwffjmjggwhwwnnmlmpmmhcmcpcrcddvzvpzzwnznfznffgdgvddvtvgvsvdsdbbjnjtntbnttgbbbvgvgrgrzrvzrzddlsddcndcnnfqnnmpmlppdlplzplzpzgzmzmddlvlnnbttbwwhbhdhfdfssjppmcpplpdddnpdnnljlwjljsjnjhnhvhvqqsffrbbdttjdjndjdwwsfspffnhfhhlvhvmmqjmmwzwszwwvdvpdvdbdtdsdtsshvvmtvmtmctclchccrllznzfffpjjvhhdmhhvphpghgsgmmhlhnlnmnlnslnlgngznnsqnqddllpwllmzmjmttptfpplglqlgglgqqptqqmvmtmjmddcchbblltslsvsmvmgghmmccnzcztczzmnmttrdrvvcvzvvzllbhllnldndbbqffbbgtgddbtdbbzttdptpccjnjppbllbzlblrlcllhrrhqhgqqbcqcvcdvvnnzfzvzttrptrrwmrmlrlddvttdbtdbdcdvccwlcwwhphmppwfppclpcllgqgnghhvfflfggrzrcchfhhrdhrdhdnhnmmhjjwqjjpmmwvmmdnmnzzqmqwwmtthtdhtthnnqhqdhqqndqqwffsbspbptpmmndnllsmmdhmhfhnhjhghshlslppbgpgngddlsljsjmmzqzhhswhssfzssfqqcmqcmqcmmqggjcjvvgssrccwddmpmwwdfdpdbdpdwdvvqfvfrvvvsbvbhvvmqqcjqqvzqzppncnhhqnnpgplpqqpjpbblpbbbshsthhvfhfmmqzmmznnvrvqrrwdrdlrlwlttzqttjvttqltqqnfqqqwjqwwqttfstftjffsqqnhhnsnqqhggbsgghfgglslmssqlqhlhthqhccdsspsnssshbbnmngnnhllwclcffqllsrszrssnqsqvqjvjcvcttqgqbqmmfqfsqfsqswwvcvffndnfdfvfcvvggsmsfmfwfpfwwzhznntgtlglmmlfmllwrlrwwhcchqchhznzjjcdjdbjjhcjcscwwlnnsgngqqtgqgngnwgnnhqnnhchmchhtchcnclcmccgffbmmzvvrnngwwvddzccnjntjtwjwwztwtmtddjddpsptpbpbvvbwwnlnmndmnmdnnclnnbsbddpfdfvvjtjqqtqqqzjzlzqllzzwwlppvfffpcffffprrncnnzsnznhhwvvqhqphpjjgqqvnnmdmqqglqlblgglrlsspscsjjpvpbpjjwccslsppdjpdjjwvjjmhjhtjjwqqbqjqzjqzqpqbbswwlssqzssbjjpjqjbbjcjpjspjssjjzhhhnjhnhbnhhwzhzwlcshqlqpzgggzmcwntcwmfgtrwwjdpnbdqqcgnzgbdrzdmpwgvtvqffqbpvjpjrcfswffllnvnwvhclpjcwqwgnwqwvwsfgflrgzzsswffwjdjgvdvlgmczcbthwbvhggwzwlzfmhvwvjpbpnhcczbgfhhgghsmjwnvnsvnvmqwstrgnncwbqgbqpgdngllcqnzgwswpgtwzgqzggnzsdgltrlqfctqfvlzdswccfpdtjbfnrbqsmpjclnplbmqbmvwbzzdflwbqrljvzjpcrmnqsmrpqlmfsgcmthqpwgwzvmrjnhqczljcpnzjbwzrhjrzmcqpmlbzhgmqrlzsjbjsvcmcngptzlrthwsrjrlmsrgjlzrvpzwmprwnpgvjtspsppfvwfwcvbnqcwwmzlbqthqmbnbmnsnzgsbbnqtrvhlzjhphclpjzrdblszrnftqgwwrhpznhjhgrncvsvrmtmmgssvzddjfrnrzhbrqrfffjvzrqdnrdbvjwgrvlcpbncfgczlwdggsjmwzhndcdbggjvwfljctjnsjwczwfdrfttbhnlswfdbpcnwpspdhnzwqbgdswwpccbpfpgmfmvvwpzbzqsbbjbfnhjpszcbnrdplmwtdjtpcsztdjcmczltnstzwlcdbtdhsdgsgtlvdfqggfmmrppjfrmtfwhpbjsppszjbhmthndqmvbmqcbtqsltwrcvlvblwspbgspjftwllzcmnsrvjpnstzrfmcflnhppsdfggwbzvnvlnjqlfvrlplnzvfrwvgcgqvnpfgtgchctvhcplclzmfpwgnfhqjgglfmsgpflqcpqmbbhwnvvdllcnhblpnndbdtmgvfbvvvlvzlrpfqmnvzbfrssjtlgcjtpfznshvdjrjnfshfcgvwcdbqlfsbhnzwmsgwhpbzttgfjsqgwvdmbdwjljhsndrbbzfrsqjhcbldzqpmtnfvnmzltjcrvrltwshnhqlnclmcnfpbzstsczlqmfmdftzfbcwqnhqppzfbzpbfjhmmtvtbmblmtshsbtjlvsqvmbmgstbbdmhprqmtpfdqqntmnlbmpsmwfgrvstjcllhwpcddnljdjvdrbwqmgrjnldpgnrhgqpzqrvwzsngrgnbpjnsffzjsbdptwnnfcqlscfhvggpfstsnqzcjbqqhgdpqsrlprcppgqmddpqpbnvgwtdqsbbgtvsqfrtqfsbdzhsztfmvwrrsjcbtcjgzrnhnpgldtwbwgmwbgmjjzsbbzlhgmlczrhjwtzrgwscmjvlstprldhglvftqzbtrmcwzgtjppbnjcdvjvcwvdbngnbrmjvvtnwdqfclbpgzcfnnnlnngtgmhsqsdmbjctjzjpbrwrhscqshmmwbtfnzjgsrjlnqqdsvdrjdzsdprphnfmwwcztqfcrjvnfhlvnqwbrfmcvhrbtgvcrqjjfcnzwmlfzzdcbbzvphhmsdltwjfdcgthpvszqzjdbfwrpvhbjqdhrscnvjhjvvcldnhgjclmzpbrrwnscgpcqrpdgsnjnwhctcdqgwqbrcszfzpmtdrhlftvwffdjrtznqrppqbdbwvzmtlpvsqqpcngjgfdrpngnspdwhhvlhqrtsphgqrlldggtrvqsprbfdmrpgcmqphdvjfmhlznpgtqlvtnllcdhzhhtjjlfvdlwhcrfmjmdjtmbllvsfgvmfqtqlmrlrjmqptszvjdpzhphppljnpjdjpwlrclssgdnstchhwhpflmlrtdqvqbbljrmnflrltzpqmgqfrczvfzrpfsrwsgpljvjfjdjdvjchcdmmtjgghqspwzdtwqgtvmnrrbfbgnhcrvnzznrdlqmgmdwmpwzlqdjtvpszwnjtjtmjqvfwvftlhgpvgzswpbvbllfcwpjnsmbhzrdpdzjsrpnhphdcqjmzvvhrjcwhgwjwcshqwzpbpmfnjjvqcjrqmvsrdrtdvfhwhrbpvrqrsfzflslqtdrtcsggtzmpvbszdgttlvpwwltvpcwqmnwqtpcfzgsvsmncvpqqdrljfwtncplmjlpfcnqmcctwzhrbmrfwvsrjsbnhjrjmrnbmmnnhsvlltwzzhsgwppnlmljgpcsmpchdjdzpgvrtwsfzffhnlbfmrldzbshvpqhnfzpwnvczgfvhbntcpztwqlfgtsmdhvcrgjhvqrhbpvbpzcpbgzrcfjztbnfjptbzfpztwprwf diff --git a/2022/in/day06.ref b/2022/in/day06.ref new file mode 100644 index 0000000..7980a82 --- /dev/null +++ b/2022/in/day06.ref @@ -0,0 +1 @@ +mjqjpqmgbljsphdztnvjfqwrcgsmlb diff --git a/2022/in/day07.pzl b/2022/in/day07.pzl new file mode 100644 index 0000000..c988c21 --- /dev/null +++ b/2022/in/day07.pzl @@ -0,0 +1,1013 @@ +$ cd / +$ ls +dir jmtrrrp +dir jssnn +dir lbrmb +11968 pcccp +$ cd jmtrrrp +$ ls +77968 chq.jvb +dir fmgsql +$ cd fmgsql +$ ls +dir dbnsfp +dir vvp +$ cd dbnsfp +$ ls +51021 crlq.lrj +186829 dhcrzvbr.wmn +16232 fvhn.fqm +54150 qpbqqj.rpg +$ cd .. +$ cd vvp +$ ls +179105 rrcsndz.tzp +$ cd .. +$ cd .. +$ cd .. +$ cd jssnn +$ ls +dir bphfqs +dir dbnsfp +dir pcccp +dir snr +dir zjbvwsnv +$ cd bphfqs +$ ls +110077 dhcrzvbr.wmn +$ cd .. +$ cd dbnsfp +$ ls +dir hgvh +dir jtqdcmsz +154197 rrcsndz.tzp +$ cd hgvh +$ ls +dir qjnbg +$ cd qjnbg +$ ls +dir bqzfpr +$ cd bqzfpr +$ ls +124394 wjsbsp +$ cd .. +$ cd .. +$ cd .. +$ cd jtqdcmsz +$ ls +275597 dbnsfp.fpg +$ cd .. +$ cd .. +$ cd pcccp +$ ls +dir cnbd +85621 cqzvwl +dir dbnsfp +114355 hbhp.cfv +dir mcgq +dir pcccp +dir qpbqqj +224038 rrcsndz.tzp +dir zcsm +27570 zjbvwsnv.fjt +$ cd cnbd +$ ls +dir jrbz +dir pphv +$ cd jrbz +$ ls +dir dwvlwfq +$ cd dwvlwfq +$ ls +32237 fwclr.rnb +$ cd .. +$ cd .. +$ cd pphv +$ ls +180370 dhcrzvbr.wmn +50154 dzvwdwl.gbt +123965 mlsv.hlw +163116 wnhtwr.mwl +$ cd .. +$ cd .. +$ cd dbnsfp +$ ls +252181 btv.mpv +dir hwncj +dir pcccp +$ cd hwncj +$ ls +51410 jbd.fcm +$ cd .. +$ cd pcccp +$ ls +258123 chq.jvb +$ cd .. +$ cd .. +$ cd mcgq +$ ls +206506 qpbqqj.bbb +$ cd .. +$ cd pcccp +$ ls +193219 ddhtnql.hmb +134114 hjbpzqzb.rwn +108927 lznndn.nqd +73241 ncdrv +$ cd .. +$ cd qpbqqj +$ ls +dir crdt +dir tgchdnc +$ cd crdt +$ ls +205710 chq.jvb +$ cd .. +$ cd tgchdnc +$ ls +dir bdw +dir dpl +dir jssnn +dir pcccp +dir plpzbm +$ cd bdw +$ ls +211300 dbnsfp.tjm +$ cd .. +$ cd dpl +$ ls +287744 rsbjqwm +$ cd .. +$ cd jssnn +$ ls +dir jssnn +$ cd jssnn +$ ls +9644 hmjhshg.vbv +$ cd .. +$ cd .. +$ cd pcccp +$ ls +dir jssnn +85888 pcccp.hdj +dir qpbqqj +dir rmscmwtv +$ cd jssnn +$ ls +129698 crlq.lrj +7499 dhcrzvbr.wmn +283607 qpbqqj.djr +234874 wqnrhll +$ cd .. +$ cd qpbqqj +$ ls +184229 qqpb.ftd +$ cd .. +$ cd rmscmwtv +$ ls +188048 dhcrzvbr.wmn +dir jwtpgbnt +$ cd jwtpgbnt +$ ls +209946 hgg +$ cd .. +$ cd .. +$ cd .. +$ cd plpzbm +$ ls +32627 tlb.qmc +$ cd .. +$ cd .. +$ cd .. +$ cd zcsm +$ ls +dir lczflft +dir zjbvwsnv +dir zmh +$ cd lczflft +$ ls +40043 dzgnvlw.scr +dir lrnb +$ cd lrnb +$ ls +109881 bjpbs +dir jssnn +46901 npmw +$ cd jssnn +$ ls +9216 sgrp +$ cd .. +$ cd .. +$ cd .. +$ cd zjbvwsnv +$ ls +214676 jssnn.hgn +$ cd .. +$ cd zmh +$ ls +dir jdt +dir rggpltr +$ cd jdt +$ ls +147387 jhhsv +90052 jssnn.wns +53105 qpbqqj.dzq +$ cd .. +$ cd rggpltr +$ ls +121454 dbnsfp.dzt +dir gcc +$ cd gcc +$ ls +dir zbqwl +dir zjbvwsnv +$ cd zbqwl +$ ls +260297 pcccp.jrw +$ cd .. +$ cd zjbvwsnv +$ ls +248709 pcccp.tph +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd snr +$ ls +152569 chq.jvb +1437 crlq.lrj +$ cd .. +$ cd zjbvwsnv +$ ls +dir cqhb +53235 ghhtl.bhv +199640 npcfdw +136346 qpbqqj.lmv +dir zjbvwsnv +$ cd cqhb +$ ls +24712 sqqf +$ cd .. +$ cd zjbvwsnv +$ ls +dir gzqg +dir hfbfvn +dir srsphr +dir vgvdcvc +$ cd gzqg +$ ls +dir jjw +$ cd jjw +$ ls +240052 zdcjjz.pmg +$ cd .. +$ cd .. +$ cd hfbfvn +$ ls +278190 bfgndw.pvf +$ cd .. +$ cd srsphr +$ ls +42591 zjbvwsnv.hgh +$ cd .. +$ cd vgvdcvc +$ ls +120322 rrcsndz.tzp +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd lbrmb +$ ls +dir bjhpdj +42241 crlq.lrj +dir dbnsfp +244610 dhcrzvbr.wmn +dir hppb +dir mcnzs +dir npntsr +13625 tpjpcsgp.dlz +219424 vvpbt.zvf +dir zjbvwsnv +191467 zjbvwsnv.htn +$ cd bjhpdj +$ ls +dir bqjvst +204722 dbnsfp +dir dhltrqqq +226082 dmdqcjp +dir fcqwgzp +dir jssnn +6453 jssnn.ndh +23799 jssnn.zqn +dir nwglfhpl +dir pcccp +dir pdnj +269246 shzqns.nws +dir sjstqlcb +dir zssln +$ cd bqjvst +$ ls +202793 dbnsfp.pjj +259783 jssnn +dir rbvbhnvs +30683 rvddnjmb.tlz +dir tzhslnv +$ cd rbvbhnvs +$ ls +86934 vrtrf.htt +$ cd .. +$ cd tzhslnv +$ ls +76278 mghcwdlr.tsc +$ cd .. +$ cd .. +$ cd dhltrqqq +$ ls +dir mfd +dir pcccp +dir smmb +251164 wsdnsgtt.lhr +191876 zvr.bbz +$ cd mfd +$ ls +51017 crlq.lrj +99213 rjtbnnnq.hgd +$ cd .. +$ cd pcccp +$ ls +160487 dhcrzvbr.wmn +dir nhdrnthj +dir qpbqqj +$ cd nhdrnthj +$ ls +181291 bbn.wtm +186551 fnw.tnn +23622 rrcsndz.tzp +dir zjbvwsnv +$ cd zjbvwsnv +$ ls +227547 dhcrzvbr.wmn +$ cd .. +$ cd .. +$ cd qpbqqj +$ ls +212353 crlq.lrj +170195 dhcrzvbr.wmn +dir ttvp +$ cd ttvp +$ ls +185994 tgjcfgjv +$ cd .. +$ cd .. +$ cd .. +$ cd smmb +$ ls +dir dbnsfp +85354 dbnsfp.zpn +80665 dfmmjbm.rnr +135989 dhcrzvbr.wmn +93718 lrbzr.nfs +dir mjpfnfns +dir nsdpfnhb +dir pmnssvd +32270 qpbqqj.vtd +$ cd dbnsfp +$ ls +31796 gzs.rgv +64506 vbjncw.bpz +181659 vjlfrdp.tqh +$ cd .. +$ cd mjpfnfns +$ ls +231611 chq.jvb +17518 cmnlrzq.hvh +144795 dbnsfp +162194 jssnn.wjz +29305 vdqnlw.fzf +$ cd .. +$ cd nsdpfnhb +$ ls +281844 chq.jvb +$ cd .. +$ cd pmnssvd +$ ls +165816 dfvl.czb +144561 gbn +150785 lnzdwrmb +111214 rrcsndz.tzp +164156 tzgdb.hht +$ cd .. +$ cd .. +$ cd .. +$ cd fcqwgzp +$ ls +199161 dhcrzvbr.wmn +34251 rrcsndz.tzp +198345 vjlfrdp.tqh +167001 zjbvwsnv.bsd +$ cd .. +$ cd jssnn +$ ls +dir ccblfvl +103180 dhcrzvbr.wmn +dir prw +dir tzqfn +dir zjbvwsnv +166467 zjbvwsnv.tdt +$ cd ccblfvl +$ ls +159752 crlq.lrj +20805 jssnn.dvb +243040 lct.zll +27492 qbh +27174 vjlfrdp.tqh +dir zvfwq +$ cd zvfwq +$ ls +135126 chq.jvb +41664 gphw.vzd +dir hmrdghbr +dir jssnn +dir qzzb +dir tmdlcv +$ cd hmrdghbr +$ ls +dir jvgpwrbs +$ cd jvgpwrbs +$ ls +dir wzdv +$ cd wzdv +$ ls +26834 qpbqqj.njf +$ cd .. +$ cd .. +$ cd .. +$ cd jssnn +$ ls +90199 jqqmqddf.qnz +$ cd .. +$ cd qzzb +$ ls +dir mgpql +dir src +dir zvdgc +$ cd mgpql +$ ls +141852 qpbqqj +$ cd .. +$ cd src +$ ls +204425 lqmcbndm.jrj +75571 qsbrsv.jcm +$ cd .. +$ cd zvdgc +$ ls +268742 ffjmrmmz.lhg +18385 rvmp.hjv +$ cd .. +$ cd .. +$ cd tmdlcv +$ ls +182587 sfwvjrj.mzl +$ cd .. +$ cd .. +$ cd .. +$ cd prw +$ ls +207429 dbnsfp.rqf +dir ptgn +dir pzgpqp +252902 rbt +169694 trg.rsh +$ cd ptgn +$ ls +dir jssnn +dir qpbqqj +dir rpd +$ cd jssnn +$ ls +189316 dbnsfp.bqc +$ cd .. +$ cd qpbqqj +$ ls +167937 zjbvwsnv.bhz +$ cd .. +$ cd rpd +$ ls +8775 crlq.lrj +$ cd .. +$ cd .. +$ cd pzgpqp +$ ls +dir pcccp +$ cd pcccp +$ ls +51496 pcccp +$ cd .. +$ cd .. +$ cd .. +$ cd tzqfn +$ ls +dir cbpfvdp +285700 crlq.lrj +7426 dbnsfp.fsd +dir gdl +141367 jssnn.hmw +184482 sczphnp.vnc +126288 vjlfrdp.tqh +dir wndpdj +$ cd cbpfvdp +$ ls +dir cvfr +dir qpbqqj +$ cd cvfr +$ ls +dir jfrnvts +dir qpbqqj +$ cd jfrnvts +$ ls +dir vwdn +$ cd vwdn +$ ls +236936 vjlfrdp.tqh +$ cd .. +$ cd .. +$ cd qpbqqj +$ ls +254275 bqd +$ cd .. +$ cd .. +$ cd qpbqqj +$ ls +dir jssnn +201960 qpbqqj +$ cd jssnn +$ ls +131127 jssnn +$ cd .. +$ cd .. +$ cd .. +$ cd gdl +$ ls +225146 hsgzmtp.wcs +204436 jssnn.lhh +64007 mjzjgfg.jsb +$ cd .. +$ cd wndpdj +$ ls +245412 bvcq +211386 dbnsfp.tqd +186962 fql.mww +dir hlmhtfz +117446 smvjvcn.lcp +$ cd hlmhtfz +$ ls +150152 lrdhbq.rvm +$ cd .. +$ cd .. +$ cd .. +$ cd zjbvwsnv +$ ls +179703 fvmbz +87552 qtz.ccw +129764 rrcsndz.tzp +$ cd .. +$ cd .. +$ cd nwglfhpl +$ ls +66039 crlq.lrj +dir cwq +dir dlgrsw +267814 frhlttn.nmd +dir hmprt +dir qpbqqj +dir wnfzznfh +$ cd cwq +$ ls +77655 cpjnwzh +dir pcccp +dir zjbvwsnv +dir zzhjfmnr +$ cd pcccp +$ ls +dir pcccp +$ cd pcccp +$ ls +245309 bggzbrg.flf +$ cd .. +$ cd .. +$ cd zjbvwsnv +$ ls +196915 gnmfb.dzq +dir ngqbdqp +$ cd ngqbdqp +$ ls +355 rrcsndz.tzp +$ cd .. +$ cd .. +$ cd zzhjfmnr +$ ls +dir dbnsfp +$ cd dbnsfp +$ ls +223184 chq.jvb +$ cd .. +$ cd .. +$ cd .. +$ cd dlgrsw +$ ls +181906 chq.jvb +5636 dbnsfp +219889 jbr.slc +dir zrntbl +$ cd zrntbl +$ ls +61864 brnpgpwt +138980 qpbqqj +$ cd .. +$ cd .. +$ cd hmprt +$ ls +90249 dbnsfp.mbd +$ cd .. +$ cd qpbqqj +$ ls +290377 crlq.lrj +$ cd .. +$ cd wnfzznfh +$ ls +83022 hclmps +64095 zhm +$ cd .. +$ cd .. +$ cd pcccp +$ ls +dir rdzntr +dir rvccq +$ cd rdzntr +$ ls +239028 rrcsndz.tzp +$ cd .. +$ cd rvccq +$ ls +22746 chq.jvb +288752 jjvppq.swt +dir msgwsnjq +dir pggz +228469 vjlfrdp.tqh +$ cd msgwsnjq +$ ls +102522 lwgqc.mhv +25239 ndm.llf +$ cd .. +$ cd pggz +$ ls +dir cnjqsqj +$ cd cnjqsqj +$ ls +229407 shpnq +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd pdnj +$ ls +193069 rwnhgttz.pvp +$ cd .. +$ cd sjstqlcb +$ ls +263295 chq.jvb +224091 jss.wtr +$ cd .. +$ cd zssln +$ ls +5859 ncdlcr.dll +$ cd .. +$ cd .. +$ cd dbnsfp +$ ls +271252 dhcrzvbr.wmn +$ cd .. +$ cd hppb +$ ls +259968 jssnn +81292 qpqqb.clj +$ cd .. +$ cd mcnzs +$ ls +170903 crlq.lrj +59482 dhcrzvbr.wmn +dir dqzwzbgm +dir gnrztn +286736 jssnn.jcm +32791 phqsgl +dir pzjnrwt +197323 vjlfrdp.tqh +dir wvnwbpct +$ cd dqzwzbgm +$ ls +78575 qpbqqj +251546 qpbqqj.slb +$ cd .. +$ cd gnrztn +$ ls +158603 hdnwmd.rhj +dir nbfdtwzr +178239 ptnchzpg +40517 rrcsndz.tzp +dir smvb +198007 vjlfrdp.tqh +$ cd nbfdtwzr +$ ls +200354 crlq.lrj +$ cd .. +$ cd smvb +$ ls +163921 zjbvwsnv.brz +$ cd .. +$ cd .. +$ cd pzjnrwt +$ ls +33891 lwrll +259646 pcccp.sfn +106835 pqfzthjq +189673 rrcsndz.tzp +$ cd .. +$ cd wvnwbpct +$ ls +234188 dhcrzvbr.wmn +dir gmtpsgv +86379 jssnn +146663 sfpmdbbd.jvt +25795 vjlfrdp.tqh +$ cd gmtpsgv +$ ls +18642 chq.jvb +3046 cznlwtw +26335 ddgpngrc +116455 vnnls.hsg +$ cd .. +$ cd .. +$ cd .. +$ cd npntsr +$ ls +dir cccjdcvb +206657 chq.jvb +280518 crlq.lrj +dir dbnsfp +dir jphnn +dir jssnn +dir mpl +195193 rrcsndz.tzp +dir rztc +dir znwp +$ cd cccjdcvb +$ ls +192965 mcr.sfq +$ cd .. +$ cd dbnsfp +$ ls +dir gfns +173317 jssnn.tjq +dir mgr +68817 mvwcwfcr.zmz +dir pqfht +108571 swfl.dtj +10398 tvvvv +dir vzg +174361 zjbvwsnv +$ cd gfns +$ ls +203999 zjbvwsnv.hfg +$ cd .. +$ cd mgr +$ ls +dir zjbvwsnv +$ cd zjbvwsnv +$ ls +26871 tqlgcf.jrn +$ cd .. +$ cd .. +$ cd pqfht +$ ls +199590 clpvscl.rlm +dir dwlhv +dir vhzfzhrb +$ cd dwlhv +$ ls +130761 qpbqqj +242752 rrcsndz.tzp +$ cd .. +$ cd vhzfzhrb +$ ls +dir njdgcbvm +$ cd njdgcbvm +$ ls +dir snjfqg +$ cd snjfqg +$ ls +dir qpwh +$ cd qpwh +$ ls +153353 qsjpj +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd vzg +$ ls +dir pcccp +$ cd pcccp +$ ls +dir jfbtl +$ cd jfbtl +$ ls +209199 dbnsfp +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd jphnn +$ ls +52305 crlq.lrj +193480 gmms.whz +59354 nmq.dww +64638 qpbqqj +47072 rrcsndz.tzp +$ cd .. +$ cd jssnn +$ ls +69168 crlq.lrj +1549 dhcrzvbr.wmn +219596 hdmczg.lmm +108063 jssnn +24327 vjlfrdp.tqh +dir zjbvwsnv +$ cd zjbvwsnv +$ ls +189952 chq.jvb +$ cd .. +$ cd .. +$ cd mpl +$ ls +144856 bqrrzm +249487 crlq.lrj +dir ffqgpgfg +93632 flqwtn.nsz +dir mwpcqr +195910 pdqwn.lcg +$ cd ffqgpgfg +$ ls +66459 dbnsfp +200500 lcmt.zmz +207093 qpbqqj +77042 vjlfrdp.tqh +57109 wwzv.hbn +$ cd .. +$ cd mwpcqr +$ ls +dir zjbvwsnv +$ cd zjbvwsnv +$ ls +166393 vjlfrdp.tqh +$ cd .. +$ cd .. +$ cd .. +$ cd rztc +$ ls +57788 chq.jvb +$ cd .. +$ cd znwp +$ ls +164627 chq.jvb +$ cd .. +$ cd .. +$ cd zjbvwsnv +$ ls +dir dgrrl +71529 jssnn +198617 pcccp.qqh +dir phggn +56842 zjbvwsnv.vqd +$ cd dgrrl +$ ls +dir czm +dir fhhlbdlz +dir gstjw +dir qpbqqj +dir stgb +$ cd czm +$ ls +dir jssnn +$ cd jssnn +$ ls +162335 chq.jvb +30099 mfdgdw +96389 pcdsd.wmw +251423 tmz.lcb +205979 vpltdt.gtv +$ cd .. +$ cd .. +$ cd fhhlbdlz +$ ls +dir qpbqqj +dir vdjs +dir zgz +$ cd qpbqqj +$ ls +285561 chq.jvb +263924 lbqcfdrs +138854 pcccp.dtn +$ cd .. +$ cd vdjs +$ ls +32688 chq.jvb +223233 tbn.blt +$ cd .. +$ cd zgz +$ ls +92804 bqltmv.wzb +$ cd .. +$ cd .. +$ cd gstjw +$ ls +151784 fvfszzzn.cbh +$ cd .. +$ cd qpbqqj +$ ls +dir blztqf +dir plgnh +$ cd blztqf +$ ls +195097 wlvmtz +$ cd .. +$ cd plgnh +$ ls +dir dbnsfp +246221 dhcrzvbr.wmn +271121 jhwmmzls.mhw +170162 pcccp.dpp +37872 qpbqqj +$ cd dbnsfp +$ ls +dir dhpnr +$ cd dhpnr +$ ls +152837 pcccp +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd stgb +$ ls +248436 vjlfrdp.tqh +$ cd .. +$ cd .. +$ cd phggn +$ ls +284602 dhcrzvbr.wmn +dir lctr +dir rjmc +66651 rrcsndz.tzp +117525 vth.fgw +156877 wcqnjzbq.dgf +7803 zpsrzclh.bzw +$ cd lctr +$ ls +212339 jssnn.whp +dir jzhcqb +99974 pcccp.zhs +111354 pmc +104899 vjlfrdp.tqh +93496 zhwmbw +$ cd jzhcqb +$ ls +dir zjbvwsnv +$ cd zjbvwsnv +$ ls +146807 rbrg +$ cd .. +$ cd .. +$ cd .. +$ cd rjmc +$ ls +dir fvbmsc +139747 glwmr.lrg +dir gvnnz +102023 tbj.qmz +dir vsztsjfh +$ cd fvbmsc +$ ls +136838 vpvbz.qtw +$ cd .. +$ cd gvnnz +$ ls +95498 zjbvwsnv +$ cd .. +$ cd vsztsjfh +$ ls +215479 ffwlcrwb diff --git a/2022/in/day07.ref b/2022/in/day07.ref new file mode 100644 index 0000000..01b76da --- /dev/null +++ b/2022/in/day07.ref @@ -0,0 +1,23 @@ +$ cd / +$ ls +dir a +14848514 b.txt +8504156 c.dat +dir d +$ cd asdf +$ ls +dir e +29116 f +2557 g +62596 h.lst +$ cd e +$ ls +584 i +$ cd .. +$ cd .. +$ cd d +$ ls +4060174 j +8033020 d.log +5626152 d.ext +7214296 k diff --git a/2022/in/day08.pzl b/2022/in/day08.pzl new file mode 100644 index 0000000..e6d0149 --- /dev/null +++ b/2022/in/day08.pzl @@ -0,0 +1,99 @@ +201111211202111301212201403141040230323033312212134523125000140404300230341330300221220012110101011 +011220103113221111202122124010033421404432343233535151335133353340034134034332440001110102010010220 +122121120300202230411332402004044235424325455343231124521355323541403402031010313440121321321322221 +200021211323122312440342411331012332252341254144425451345233324423152201041200212200331121111210011 +022213121203213301221100041021415245132424534145512125411151335224315551123141404223410032032000022 +101131310332214402243114310442325141344331525541232153453225442351235123130234413214313330121121101 +101102011001014411302320032155533351421345311554341111544153414344211242545240114004311012303003230 +101023122212322231421422241433315213542415532226334465642351151321144451152132311230002433230001110 +101102012000130221414322332331245251153242654525425363234533655232423135443124134230202313201000123 +113023100223214000232555442143243135556634652423636245645335623323351235221252344243002420033131123 +021023012400222133115232154155255455226363244263663662564362455342612241224452135301204334403311211 +011011120014313211333124154235235522553465256455435352362343343356452125515224121432404101240133203 +011310103034221123212123555245622666563625344356454344325522453265262433154414231333142413311331323 +303301320412010454251154421242542562366466364652264364325544554624545256254413534434331434344310311 +211332131030004243315521542363644424356453643345544752562524552255353324654134525543231434112230100 +002102403432244535421254566353326346446265345654366646566543552562536326635315453214125414141214102 +331140031313041444123423526426422252527375577546753455777737547626364645566461554234123523430311313 +330401323101512253253516526653653542734767336644345445665364743533364355534236521342413154132413122 +330411204212311445244535522655343573747374364345564574375763553465534526662642244443311121403103124 +023332003431144254543626226245566455744465356337347475347374637637653442626233624414255134423423042 +244210400021232153266652252325756653575474576355747475663555354556777566436342344532415443212134234 +243022342335541213565253544236755753776564447733743446775775654547533666422423326624134345443023202 +400214112533143341263455565263566576767643378645664845674353474533736575624522664521123334133420203 +314412035353435253634446462463763443376476847467648547566465453356757464475343435464134531133123324 +210413325433315134452365563547564744658868746684566644877466576346553654766362254362221413424430422 +440400434542543525543663633667763537556667668747746756785587458767563547637623326226661151144334010 +203031334152125642466635547657766584664687848767577545486757587488654373354446324524564152231113112 +241001452244343336664255646743677756848545865758665674685886656454447657464556245442364333553250131 +014023224515325454455574567445744885857785756585855854887668646555746475564455722536445351532451133 +240034522142434662453346666663547675448567854897757695674874464454475574464737776424553231541143102 +202432344512662423437374345345446848546655697769865799957684557848684543374647545532223321334341333 +123325111441445225523673536445447568774877677796777678697975965546774547536673437544656344512135444 +310254211535525232233446556788846647746897588857688579889788855477655648566666635426236522424112342 +034313254213653456477557533774786647669769587699976668986696667747555648883667447465462526444143342 +143141533334542466354344755484874754698685556789559989587957999587645467546553365742323424612353420 +023355513126235334753777564744657489776767789956675687857787669856547584455737646446352333233414322 +223531421366552557666573477756875578695968796778976887859959556598778688876655735777332545512434212 +324553233365452565557437476777687565788999986896686778796755558896856684686773556344634525262453452 +213242455253625376773454787557859959899988899999978889797885876979769647857487767764545335245255213 +153212131552226337374543645684765767796896876966989866686867979876788867784675754744525622655431425 +043231154325334367553646774578457959887979898666866967789799775569887978674668454463732263426513135 +335542344226645477333775676444769565755967887779666696689698896656597875884556557743462633443124152 +335323556552426765767775874764689686976988996666779796996969887796587577847457535454643262525413534 +031342356243536356663654658854697858887697788666879779897996867856867654685767655656766443625531132 +335345116666525747477647458845785958767699688899778878776776988777668657478884857465753336533142152 +431315146645532647447566887678656986686996889897797878877768979656986556466744563333546332255135135 +345455244545432335674458658587555587989897879999798888988976986779787768754855836367363664566413353 +512151454564534653477764765466595799679979878789789879998767887865797755765458674344355656253343334 +223351266325633575663774564489796879687898688978997788798999779796767956656764647364636656442223522 +453333263535357446366584455459557799968998879988898977978787696768578657875454473547567326532334111 +522431356454444356554374544846975859978878977879979897898976787967789578746656874774547443245541214 +524451243233255555453685476745875568898798878799987879899778979895889689545784464464664644546653534 +351343243662255667567757864679695778779676778997998897779866887675677768667848643753754363345434313 +422125253344236737334386654576687898997799677887987777887686867895579866465457665345774366464351334 +421312154235324535653777678786976887577869769887898799897698686878966689468464555357752255363554413 +134231353356532647544747466746997955968966989988799777786898667996595997676454734577542423644111423 +254152156456563434474788846574786769698798686897989989968667786695865858667776755455566654264132134 +325554124554345334573567875686789766777879789968978788797868997657598864755765764646452636426312235 +054421142246245654657458647846877765696688798786967788769769989568865887586878654537663362654432212 +313445116364256444775744655676857696698998799776867668888686999587568854476648764345346236246232241 +143114554233652245375455887678668996669686996999796887877777686757966588885786556444465552442533324 +251331534446564265464364486744686986675876988887767766688896987878765756544754746565355566534235144 +043312335432626344536643484678579666899596766779666899678676979556965588747766665377565544465543531 +242445211324566636637644588748444588767957766968968978786788586989657745475556775355542555362121442 +243253334442556446446767754567476657566957796656988796979699968699856846446535677455225423345132114 +431231245536522344674653635685865849787997986689665576586668667768645854645567336572252526524445114 +431352413545636624334373564776844687557987796967657766857786797968874766656443453336264564435235253 +320554134146445446354475753477858558775599755977987865757897668588588666485457344365453335234122310 +333244132156433233245637373688448784459857795676588655998585696485786865554473364636554335355224153 +113345451542245623453737457745456844757575897756758966757557585554868888643374344325656234154414322 +444045515145356432335647545655765786587886758778866688968984877775888576477747477332355221552413204 +111132223523345626324747765577376687656748476986565687576768448558884573773436752362454612221523223 +022004333435234546566255554533348546676766478456868467444674448586545655467537436553554433123421120 +333231125332152663266433667535537778555667876464765456758647764446877656465367323254523253352510413 +122420553331452433333353464676537646864677748867574756565588454444657764464332235454635225432522004 +120442052444321222226423365375645435468656658447866466574856466886677654746522644365264535531343440 +421404315233111265423463525657764565658784687768567656464684688763534555373553346542234345145442244 +331231242152133344456244633655545655745345664668565885467456447677744435752654334432232553354400240 +203040023155425242246555225235473556554656638646764676455766756555576576336522336454124215215404311 +020211430251454452662234222644467675755747776474545447746753537773655567623542436262213453434423110 +121222320253353333233652252225333343646436546477634345533376676557363636362664225322253234514301234 +131331122021145511555626563643364773337345554777664437674344775376757362452454652245212143131222333 +333033033132243135213222343542265476344656453763774355443644566737723253264252451243142121312244244 +002204430244435144434515354453332632665637375363445456667774576662453443646454532431524140202312242 +121314024424022223215424644426642356264655357667436346735353466356245254264535315425323522230030301 +021012030013043135124451434556465446663353754754774574457663344656553456246613524313152023413220330 +323211122442404125421353336334324324563564625653556556652432462453235325362525324531133444231304313 +221212242244240214314234323556334553353656452662622464552256465443444565421332134313540102100220131 +003121311143322334241133533143446663652225433332652353542523664466644655215235421122322101243201202 +302132313044423014553344334444135543546462343625633335635554425246463354552555544450021401441212013 +211320002042341321404351332421424422345645623225243263532425463422453534224512413420003024103010003 +121321233203044310220544225434555523322652465244626362265436622244421244514121221412000233313302001 +033330113222134212123014455534453323452146635634333522662322621122442141151325121244124021100331010 +003211203200004004334013134312421412135211541122652523655533352215155345414442033214440410020130131 +000310132331000133341101412343222324131145425545545422415232421245514432554132410203120223330322031 +010222121001201110014203011212115523421525414334222144411533424243442552424243301203331330320011211 +202210333132013102411304342331452231412212555243242135532222244343234442033031110220213320300213112 +021110333231201113044040042034211335553321154444412432243122252145522223420412102042311030021122200 +212222233011232310420321434331332422434543133323345512355241515513414041433311311240302022331021120 diff --git a/2022/in/day08.ref b/2022/in/day08.ref new file mode 100644 index 0000000..16d6fbd --- /dev/null +++ b/2022/in/day08.ref @@ -0,0 +1,5 @@ +30373 +25512 +65332 +33549 +35390 diff --git a/2022/in/day09.pzl b/2022/in/day09.pzl new file mode 100644 index 0000000..b87df75 --- /dev/null +++ b/2022/in/day09.pzl @@ -0,0 +1,2000 @@ +U 1 +D 2 +U 1 +L 1 +R 1 +L 1 +D 1 +L 2 +U 2 +L 2 +D 2 +L 2 +D 2 +L 1 +R 1 +D 1 +U 1 +D 1 +R 1 +U 2 +D 2 +R 2 +L 2 +R 2 +D 2 +L 2 +D 2 +R 1 +L 2 +D 2 +R 2 +D 1 +R 1 +L 1 +D 1 +U 1 +L 2 +D 2 +R 1 +L 2 +R 1 +U 1 +R 1 +L 1 +R 2 +D 1 +U 1 +D 1 +R 1 +U 2 +R 2 +D 1 +R 2 +D 1 +U 1 +D 1 +R 2 +U 2 +D 1 +U 2 +D 1 +L 1 +D 1 +U 2 +R 1 +L 1 +R 1 +D 2 +U 1 +D 2 +L 1 +R 2 +U 2 +R 1 +D 1 +R 1 +U 1 +R 1 +U 2 +R 2 +L 1 +U 1 +D 2 +U 1 +D 2 +L 2 +D 1 +U 2 +L 1 +U 1 +D 1 +U 1 +L 1 +D 2 +L 2 +R 1 +D 1 +L 2 +D 2 +R 2 +L 1 +D 1 +L 2 +U 2 +L 1 +R 2 +U 1 +D 1 +L 1 +U 2 +L 1 +D 1 +U 3 +D 3 +L 3 +U 2 +R 1 +U 2 +R 1 +U 2 +L 2 +U 3 +R 2 +L 1 +U 1 +D 3 +R 3 +U 1 +D 3 +L 2 +R 1 +L 1 +U 3 +R 3 +D 3 +U 2 +L 3 +D 3 +U 1 +L 1 +U 2 +D 1 +L 3 +D 3 +R 3 +U 1 +L 2 +R 1 +L 3 +U 2 +D 2 +R 3 +D 3 +L 1 +R 2 +D 1 +L 3 +U 1 +D 3 +U 3 +D 1 +U 1 +R 1 +U 2 +L 1 +D 3 +R 3 +D 1 +U 2 +D 2 +L 3 +D 3 +U 1 +D 2 +R 2 +L 1 +D 3 +L 1 +U 2 +L 2 +D 1 +L 3 +R 1 +L 1 +R 3 +U 1 +L 3 +R 2 +L 1 +D 1 +R 3 +D 1 +R 1 +D 1 +L 3 +D 1 +U 2 +R 3 +D 1 +U 1 +R 2 +U 1 +R 3 +L 3 +U 3 +D 2 +R 3 +L 1 +D 2 +R 2 +L 2 +U 1 +L 3 +R 2 +L 2 +U 3 +L 1 +D 1 +U 2 +R 1 +U 3 +R 2 +D 3 +L 3 +U 4 +D 4 +R 3 +L 3 +R 3 +U 2 +R 3 +L 4 +R 2 +U 1 +R 3 +U 3 +R 4 +U 2 +D 3 +L 3 +D 4 +U 3 +D 4 +U 3 +D 2 +R 2 +D 1 +R 4 +U 2 +D 4 +L 3 +D 4 +U 1 +L 2 +R 1 +L 3 +R 1 +L 3 +U 3 +D 3 +U 4 +L 2 +D 4 +L 4 +U 4 +L 3 +D 1 +R 2 +U 4 +R 2 +L 1 +R 3 +D 2 +L 3 +U 2 +R 1 +U 1 +D 3 +L 4 +D 3 +L 3 +D 3 +U 4 +D 3 +R 4 +L 1 +U 2 +R 4 +D 2 +U 3 +L 4 +R 2 +L 1 +D 4 +U 3 +R 2 +L 2 +R 4 +L 4 +D 1 +L 3 +D 4 +L 3 +U 2 +R 2 +D 4 +R 2 +U 2 +D 1 +U 4 +D 2 +R 4 +D 1 +U 1 +D 1 +R 1 +L 1 +R 2 +U 4 +R 4 +D 3 +R 4 +L 1 +D 2 +U 1 +L 3 +U 4 +R 3 +D 4 +L 1 +D 1 +L 4 +D 3 +R 1 +D 4 +L 3 +R 2 +D 3 +L 2 +D 4 +U 2 +L 2 +D 4 +L 2 +U 5 +R 3 +D 2 +U 5 +R 3 +L 3 +R 1 +D 4 +R 1 +D 3 +U 3 +R 2 +D 5 +U 4 +L 1 +D 1 +R 5 +D 5 +U 1 +L 3 +D 2 +L 4 +U 3 +L 2 +U 1 +R 1 +U 2 +D 5 +L 1 +R 4 +L 1 +U 3 +L 5 +U 2 +L 1 +R 1 +L 1 +R 1 +U 5 +D 5 +R 2 +D 4 +L 1 +R 4 +L 3 +U 5 +L 4 +U 3 +R 5 +D 1 +L 3 +R 1 +U 5 +R 2 +L 4 +U 1 +L 2 +U 5 +L 3 +U 1 +R 3 +D 4 +U 1 +R 5 +L 5 +R 1 +D 1 +R 5 +U 1 +R 2 +L 5 +R 2 +L 2 +R 1 +U 5 +D 2 +L 2 +R 4 +L 3 +U 5 +R 2 +L 3 +R 2 +D 1 +R 5 +L 4 +D 2 +U 1 +R 4 +D 3 +R 4 +D 2 +R 2 +D 5 +L 3 +D 1 +U 2 +L 1 +U 5 +D 4 +U 2 +R 5 +U 3 +D 4 +R 2 +U 2 +R 4 +D 6 +L 6 +D 1 +U 2 +D 4 +R 3 +D 6 +R 4 +L 6 +R 4 +D 2 +U 4 +D 3 +U 2 +L 4 +R 6 +U 5 +R 3 +U 1 +L 3 +D 2 +R 5 +D 4 +U 6 +D 4 +R 2 +U 6 +D 6 +U 5 +R 1 +U 4 +R 5 +L 6 +U 2 +D 2 +R 5 +U 3 +L 3 +U 2 +D 4 +L 5 +R 2 +D 5 +L 3 +U 4 +D 3 +U 5 +L 2 +U 3 +L 2 +U 3 +L 3 +U 1 +L 2 +U 1 +L 6 +D 1 +R 4 +D 4 +L 4 +U 4 +D 4 +R 2 +D 1 +U 1 +R 4 +D 2 +R 4 +L 6 +R 5 +U 2 +R 2 +U 1 +R 6 +L 1 +U 6 +R 5 +D 4 +L 2 +U 4 +R 3 +D 5 +L 5 +D 2 +R 6 +U 5 +R 3 +D 1 +L 2 +D 1 +R 4 +L 5 +U 6 +R 4 +D 3 +U 3 +R 1 +D 3 +U 2 +L 1 +U 1 +R 5 +L 4 +D 1 +R 2 +U 1 +L 3 +R 5 +D 5 +U 5 +L 1 +U 2 +R 7 +D 5 +L 7 +D 2 +R 7 +L 2 +D 6 +U 1 +L 5 +U 5 +D 2 +R 4 +U 3 +L 7 +R 5 +L 3 +D 6 +U 2 +D 5 +L 3 +R 4 +U 6 +D 5 +L 5 +U 2 +D 5 +R 4 +U 2 +L 2 +D 5 +U 2 +R 5 +L 4 +R 5 +U 6 +D 3 +U 7 +L 6 +D 4 +U 2 +R 7 +L 5 +D 5 +R 6 +L 1 +D 2 +L 2 +R 2 +U 3 +R 7 +D 1 +U 3 +R 2 +U 3 +R 5 +U 3 +L 7 +D 6 +L 7 +D 5 +L 5 +R 5 +U 2 +L 4 +U 7 +L 2 +D 7 +U 5 +L 4 +R 4 +L 2 +U 5 +L 4 +D 5 +R 7 +U 2 +L 1 +D 6 +R 1 +U 6 +D 1 +L 7 +U 3 +D 2 +L 3 +U 4 +R 4 +L 5 +U 7 +L 1 +D 5 +L 7 +D 1 +R 6 +L 1 +R 5 +L 3 +U 5 +D 2 +U 6 +D 4 +U 1 +R 2 +D 8 +R 8 +D 1 +R 4 +D 6 +L 8 +R 5 +D 5 +R 6 +D 5 +U 1 +L 1 +D 2 +L 4 +R 1 +D 1 +R 7 +L 8 +U 1 +D 8 +U 6 +L 7 +R 4 +U 1 +L 2 +U 1 +L 7 +D 2 +R 8 +L 1 +U 8 +R 8 +D 6 +U 2 +L 8 +D 7 +U 4 +R 8 +L 7 +U 6 +D 6 +U 2 +L 4 +D 3 +L 2 +D 3 +R 7 +U 3 +L 3 +U 3 +D 8 +L 2 +D 3 +L 1 +R 2 +U 8 +L 4 +D 7 +L 8 +R 3 +L 7 +U 2 +R 8 +D 3 +R 7 +U 3 +L 8 +U 5 +D 5 +U 5 +D 8 +U 8 +D 2 +L 4 +U 3 +D 2 +R 6 +U 3 +R 2 +U 4 +R 2 +L 6 +U 7 +R 6 +L 5 +D 6 +L 8 +U 5 +R 3 +L 5 +U 7 +D 7 +L 1 +U 6 +R 7 +D 3 +R 2 +L 7 +R 6 +D 7 +U 4 +D 2 +L 2 +U 3 +R 1 +U 5 +R 6 +D 2 +R 8 +U 7 +L 7 +U 8 +L 4 +R 9 +U 7 +D 6 +L 6 +R 4 +D 9 +L 1 +D 5 +U 2 +L 3 +R 9 +D 2 +U 1 +R 4 +L 8 +R 1 +L 1 +U 4 +R 4 +U 4 +R 3 +D 2 +U 5 +R 8 +D 1 +U 5 +L 4 +D 5 +U 3 +L 1 +D 4 +L 3 +U 8 +R 3 +L 3 +R 9 +U 3 +D 1 +R 4 +U 2 +L 8 +R 7 +L 4 +R 4 +L 7 +U 6 +L 2 +U 9 +R 7 +D 6 +U 5 +L 9 +U 7 +L 5 +D 1 +U 8 +R 4 +D 1 +L 8 +D 8 +L 7 +R 1 +L 7 +R 3 +U 2 +R 5 +D 1 +U 9 +R 1 +L 5 +U 5 +R 6 +L 4 +D 3 +R 9 +D 7 +R 3 +D 2 +R 6 +U 2 +D 5 +L 7 +U 1 +D 8 +R 2 +D 3 +R 3 +L 6 +R 2 +L 7 +D 8 +R 6 +D 6 +R 9 +U 6 +R 9 +D 3 +R 8 +U 7 +L 5 +D 2 +R 5 +U 6 +R 7 +D 7 +U 6 +L 2 +U 6 +R 4 +D 2 +L 9 +U 2 +L 9 +U 9 +R 8 +D 1 +U 9 +R 7 +U 5 +L 3 +D 5 +U 9 +L 2 +R 1 +U 3 +D 4 +L 1 +R 10 +D 9 +U 3 +R 6 +L 1 +D 5 +U 1 +D 10 +U 6 +L 3 +U 7 +D 10 +L 2 +U 10 +D 5 +R 1 +L 1 +R 3 +L 7 +D 4 +L 7 +D 10 +R 8 +L 7 +U 2 +R 6 +U 3 +L 6 +D 4 +R 8 +D 3 +R 8 +D 10 +L 3 +D 5 +L 5 +R 10 +U 6 +L 10 +R 1 +L 7 +D 3 +U 2 +D 6 +R 3 +D 6 +L 4 +R 10 +U 8 +D 4 +L 8 +U 7 +D 3 +L 3 +D 2 +R 8 +U 9 +L 1 +U 8 +D 8 +R 4 +U 9 +D 3 +R 10 +U 3 +L 4 +R 5 +U 3 +R 7 +D 9 +R 4 +U 9 +D 5 +R 8 +L 9 +U 1 +L 8 +R 4 +D 1 +L 4 +D 6 +U 5 +L 4 +R 9 +U 2 +D 7 +R 1 +L 1 +R 7 +D 6 +L 10 +R 10 +D 4 +R 11 +L 8 +U 9 +L 6 +R 4 +U 3 +L 1 +D 7 +L 8 +D 6 +L 3 +R 5 +U 1 +D 9 +U 3 +D 4 +U 11 +D 2 +U 1 +L 4 +R 11 +L 9 +R 6 +U 6 +L 4 +U 11 +L 4 +R 5 +L 10 +R 6 +U 8 +R 8 +L 4 +D 11 +L 11 +R 2 +U 9 +R 6 +D 8 +U 6 +L 1 +R 11 +L 1 +R 1 +D 7 +L 2 +U 11 +D 7 +L 9 +R 7 +U 2 +R 5 +D 10 +R 4 +D 4 +U 2 +R 7 +U 9 +L 10 +U 11 +L 3 +R 10 +D 9 +L 6 +U 10 +L 7 +R 11 +U 5 +D 11 +R 8 +D 1 +U 7 +R 2 +U 8 +D 4 +R 6 +D 4 +U 6 +R 6 +L 7 +U 5 +R 4 +U 5 +R 3 +L 2 +R 5 +D 8 +L 11 +U 2 +R 8 +L 4 +U 11 +R 2 +D 8 +L 3 +D 2 +R 10 +L 2 +R 2 +L 8 +D 8 +L 8 +R 1 +L 1 +U 9 +D 7 +U 6 +R 2 +L 9 +U 11 +D 3 +R 10 +U 5 +R 5 +L 4 +R 10 +L 6 +U 10 +R 2 +U 2 +L 7 +R 10 +L 2 +U 3 +L 9 +U 6 +L 12 +R 8 +U 3 +R 10 +U 12 +L 6 +U 11 +R 2 +D 5 +R 12 +D 10 +R 9 +L 5 +R 9 +L 6 +R 3 +U 4 +R 6 +U 8 +L 3 +U 10 +R 5 +L 3 +U 6 +R 4 +U 10 +R 8 +D 8 +R 3 +L 5 +U 4 +D 9 +U 12 +D 10 +L 10 +R 3 +D 4 +R 2 +D 6 +L 2 +R 3 +L 10 +U 3 +D 6 +L 8 +R 9 +D 4 +L 3 +U 10 +L 11 +R 5 +U 11 +R 11 +D 11 +L 6 +R 5 +D 6 +R 4 +U 9 +R 11 +D 2 +U 9 +L 1 +R 12 +D 8 +R 11 +D 4 +R 3 +U 10 +D 5 +U 9 +R 10 +L 4 +R 9 +L 10 +D 7 +R 8 +L 8 +R 11 +L 3 +U 4 +D 10 +R 2 +L 2 +U 1 +L 12 +U 9 +R 2 +D 7 +R 2 +L 6 +D 8 +L 3 +U 7 +R 6 +D 6 +L 6 +R 5 +L 12 +D 13 +U 9 +L 1 +R 11 +D 4 +U 10 +D 7 +L 8 +U 13 +L 12 +R 3 +L 2 +D 1 +U 4 +D 9 +R 9 +L 12 +D 13 +U 9 +R 8 +L 3 +U 2 +L 1 +U 12 +D 12 +U 5 +L 5 +U 10 +R 3 +D 8 +R 10 +L 9 +R 1 +U 4 +D 12 +R 11 +U 8 +L 9 +U 10 +R 8 +U 13 +D 13 +U 10 +D 5 +R 6 +U 11 +R 4 +U 6 +L 2 +U 13 +L 2 +U 8 +R 13 +U 4 +D 5 +U 3 +R 8 +U 8 +L 6 +U 11 +R 10 +U 8 +D 8 +L 10 +D 9 +U 13 +R 12 +L 10 +R 3 +U 3 +D 10 +R 3 +D 3 +L 6 +R 3 +U 5 +L 3 +R 10 +D 6 +L 10 +D 10 +R 13 +D 1 +R 9 +L 7 +D 12 +U 6 +R 4 +L 1 +U 7 +L 8 +U 7 +L 11 +U 11 +D 1 +U 5 +R 2 +D 1 +L 9 +U 13 +R 10 +L 3 +R 9 +D 10 +R 10 +U 2 +L 4 +R 5 +L 12 +R 7 +D 7 +R 9 +D 6 +L 10 +D 12 +R 10 +D 9 +L 13 +R 13 +L 3 +U 6 +D 8 +L 7 +R 4 +U 7 +L 10 +D 8 +R 12 +L 3 +R 6 +L 14 +R 7 +L 4 +U 8 +D 10 +L 9 +D 10 +R 6 +L 5 +R 8 +U 13 +L 2 +R 13 +L 10 +D 12 +U 4 +R 1 +D 1 +R 10 +L 9 +R 12 +U 10 +D 4 +L 3 +R 7 +D 13 +L 11 +D 3 +U 11 +D 12 +U 4 +R 11 +D 9 +R 3 +D 14 +U 3 +L 10 +D 5 +L 14 +R 13 +L 12 +D 14 +R 2 +U 13 +D 10 +L 13 +U 11 +R 9 +D 4 +L 13 +U 13 +R 5 +L 1 +R 14 +D 4 +U 8 +D 2 +R 2 +U 6 +D 10 +L 1 +U 9 +R 7 +D 2 +L 13 +R 8 +L 12 +R 12 +U 8 +L 14 +D 11 +R 6 +L 5 +R 10 +U 5 +D 12 +L 6 +U 13 +R 3 +D 8 +U 11 +L 7 +D 5 +R 12 +D 8 +R 13 +L 9 +U 4 +D 3 +L 3 +D 15 +L 14 +U 2 +L 10 +R 14 +U 1 +D 11 +L 2 +R 11 +L 12 +R 7 +L 4 +U 15 +D 15 +R 9 +L 9 +R 1 +D 11 +L 1 +U 3 +R 12 +D 7 +U 2 +D 6 +R 1 +D 13 +R 3 +U 10 +D 4 +L 6 +U 8 +L 8 +D 7 +L 6 +U 15 +D 7 +U 1 +D 1 +L 14 +D 3 +U 10 +L 2 +U 14 +D 2 +L 5 +R 3 +U 1 +D 13 +U 13 +D 9 +L 12 +R 5 +L 14 +U 3 +D 11 +R 9 +U 8 +D 5 +R 3 +L 13 +U 2 +L 10 +D 3 +U 2 +L 12 +D 13 +R 14 +U 10 +D 8 +L 8 +R 14 +L 6 +D 14 +L 8 +R 15 +D 10 +R 1 +L 2 +D 6 +L 9 +R 1 +L 4 +D 9 +U 8 +L 1 +R 9 +L 1 +D 5 +L 6 +U 9 +L 6 +R 3 +U 5 +R 12 +D 6 +R 8 +D 3 +U 13 +D 2 +U 2 +L 4 +U 11 +R 4 +L 13 +U 6 +L 12 +U 4 +D 6 +U 11 +D 5 +U 8 +L 10 +D 13 +L 5 +U 15 +L 4 +R 12 +D 1 +L 9 +U 8 +L 4 +U 8 +D 10 +U 12 +L 12 +D 5 +R 10 +D 3 +U 1 +L 6 +R 10 +L 5 +D 8 +U 8 +D 8 +R 6 +U 13 +D 8 +L 16 +R 11 +L 14 +D 15 +R 15 +L 8 +D 1 +U 6 +D 15 +R 9 +L 12 +D 13 +U 9 +D 15 +L 6 +R 9 +U 8 +D 15 +U 7 +L 4 +R 9 +D 2 +R 5 +U 6 +D 14 +L 11 +D 9 +R 2 +U 12 +L 2 +R 15 +U 2 +L 15 +R 9 +U 6 +L 2 +D 4 +U 1 +L 13 +D 5 +R 14 +D 1 +R 13 +U 9 +R 5 +L 4 +U 9 +D 6 +U 7 +R 16 +D 11 +U 8 +R 13 +D 7 +L 12 +D 8 +U 15 +D 11 +U 14 +L 14 +U 10 +L 8 +R 16 +L 3 +U 13 +D 5 +L 2 +R 8 +L 10 +D 6 +R 15 +D 11 +U 3 +D 12 +R 12 +L 15 +U 13 +L 14 +D 2 +R 6 +L 5 +R 2 +U 2 +D 11 +U 14 +L 9 +R 14 +D 17 +R 10 +D 1 +U 11 +L 3 +U 1 +D 17 +L 10 +R 6 +L 14 +U 4 +D 2 +U 17 +L 2 +R 10 +D 14 +L 5 +U 7 +D 7 +R 13 +U 9 +D 9 +U 7 +D 17 +U 15 +D 1 +L 4 +D 11 +L 16 +U 8 +L 6 +R 5 +L 9 +D 14 +L 13 +D 11 +R 3 +L 15 +D 9 +L 10 +D 11 +L 11 +U 2 +L 17 +D 10 +R 13 +L 11 +U 16 +L 8 +U 5 +D 7 +U 11 +D 1 +L 17 +U 12 +L 4 +R 12 +U 4 +R 10 +L 4 +U 11 +D 8 +L 5 +D 6 +U 4 +D 16 +U 6 +D 12 +L 3 +U 3 +L 16 +R 2 +U 14 +R 1 +L 14 +U 11 +L 7 +D 11 +R 2 +D 2 +L 6 +U 10 +L 10 +D 15 +R 12 +D 16 +L 3 +U 15 +R 15 +D 17 +U 17 +L 13 +R 5 +D 12 +L 9 +R 10 +D 4 +L 2 +D 14 +U 8 +R 6 +U 5 +D 1 +L 11 +R 12 +L 17 +U 2 +L 17 +D 2 +R 17 +L 17 +U 3 +D 14 +U 8 +L 14 +D 12 +R 17 +L 18 +D 3 +U 10 +L 7 +U 10 +R 5 +L 15 +D 10 +L 3 +R 12 +D 10 +U 6 +L 17 +D 9 +U 18 +R 7 +U 1 +D 1 +L 9 +U 2 +L 5 +U 9 +L 8 +U 17 +D 17 +L 17 +D 15 +R 13 +U 15 +D 8 +R 13 +D 17 +L 18 +R 5 +D 7 +R 6 +D 1 +R 3 +L 10 +U 10 +D 12 +L 8 +R 11 +U 6 +R 5 +L 9 +R 6 +U 15 +D 4 +R 8 +U 1 +R 18 +L 18 +U 10 +R 17 +D 10 +R 10 +U 16 +R 16 +U 5 +R 7 +D 15 +U 15 +R 2 +U 17 +L 14 +R 1 +U 2 +L 10 +R 17 +L 14 +U 13 +D 1 +L 16 +D 4 +U 9 +L 17 +U 9 +D 9 +L 18 +D 9 +U 5 +L 18 +U 6 +L 5 +U 10 +L 18 +D 13 +R 8 +L 17 +U 9 +L 14 +D 12 +U 2 +D 5 +U 2 +D 17 +L 18 +R 8 +L 7 +R 1 +D 13 +R 11 +D 10 +R 18 +D 2 +U 17 +D 17 +L 4 +R 16 +D 16 +L 2 +D 5 +R 4 +U 9 +R 6 +D 7 +L 13 +U 19 +R 7 +U 17 +L 9 +U 6 +D 1 +L 19 +U 7 +R 6 +L 11 +R 12 +D 6 +L 17 +R 18 +D 17 +L 2 +D 8 +U 15 +D 13 +L 10 +D 10 +L 17 +D 4 +L 12 +U 11 +L 3 +D 6 +U 18 +R 18 +U 16 +L 5 +D 9 +R 17 +L 17 +D 16 +R 12 +D 18 +U 14 +R 1 +U 12 +R 4 +L 6 +U 14 +R 18 +D 6 +U 2 +D 13 +U 15 +L 14 +R 3 +D 7 +L 6 +D 15 +U 17 +L 12 +D 2 +L 12 +R 10 +L 16 +D 15 +L 18 +U 9 +L 7 +U 13 +R 11 +U 9 +L 4 +U 12 +R 14 +D 11 +R 8 +U 4 +L 17 +R 14 +D 15 +R 1 +U 5 +R 3 +L 4 +R 9 +U 1 +D 10 +R 3 +U 16 +D 6 +L 1 +U 15 +D 9 +U 10 +L 11 +U 7 +L 5 +D 19 +L 8 +U 10 +L 19 diff --git a/2022/in/day09.ref b/2022/in/day09.ref new file mode 100644 index 0000000..9874df2 --- /dev/null +++ b/2022/in/day09.ref @@ -0,0 +1,8 @@ +R 4 +U 4 +L 3 +D 1 +R 4 +D 1 +L 5 +R 2 diff --git a/2022/in/day09_2.ref b/2022/in/day09_2.ref new file mode 100644 index 0000000..60bd43b --- /dev/null +++ b/2022/in/day09_2.ref @@ -0,0 +1,8 @@ +R 5 +U 8 +L 8 +D 3 +R 17 +D 10 +L 25 +U 20 diff --git a/2022/in/day10.pzl b/2022/in/day10.pzl new file mode 100644 index 0000000..540f82a --- /dev/null +++ b/2022/in/day10.pzl @@ -0,0 +1,145 @@ +addx 1 +noop +noop +addx 4 +addx 5 +addx -2 +addx 19 +addx -12 +addx 3 +addx -2 +addx 4 +noop +noop +noop +addx 3 +addx -8 +addx 15 +addx 1 +noop +noop +addx 6 +addx -1 +noop +addx -38 +noop +addx 10 +addx -5 +noop +addx 3 +addx 2 +addx 7 +noop +noop +addx 3 +noop +addx 2 +addx 3 +addx -2 +addx 2 +addx 7 +noop +noop +addx 9 +noop +addx -12 +noop +addx 11 +addx -38 +noop +noop +noop +addx 5 +addx 5 +noop +noop +noop +addx 3 +addx -12 +addx 14 +noop +addx 1 +addx 3 +addx 1 +addx 5 +addx 4 +addx 1 +noop +noop +noop +noop +noop +addx -9 +addx 17 +addx -39 +addx 38 +addx -8 +addx -26 +addx 3 +addx 4 +addx 16 +noop +addx -11 +addx 3 +noop +addx 2 +addx 3 +addx -2 +addx 2 +noop +addx 13 +addx -8 +noop +addx 7 +addx -5 +addx 8 +addx -40 +addx 16 +addx -9 +noop +addx -7 +addx 8 +addx 2 +addx 7 +noop +noop +addx -15 +addx 16 +addx 2 +addx 5 +addx 2 +addx -20 +addx 12 +addx 11 +addx 8 +addx -1 +addx 3 +noop +addx -39 +addx 2 +noop +addx 5 +noop +noop +noop +addx 4 +addx 1 +noop +noop +addx 2 +addx 5 +addx 2 +addx 1 +addx 4 +addx -1 +addx 2 +noop +addx 2 +noop +addx 8 +noop +noop +noop +addx -10 +noop +noop diff --git a/2022/in/day10.ref b/2022/in/day10.ref new file mode 100644 index 0000000..37ee8ee --- /dev/null +++ b/2022/in/day10.ref @@ -0,0 +1,146 @@ +addx 15 +addx -11 +addx 6 +addx -3 +addx 5 +addx -1 +addx -8 +addx 13 +addx 4 +noop +addx -1 +addx 5 +addx -1 +addx 5 +addx -1 +addx 5 +addx -1 +addx 5 +addx -1 +addx -35 +addx 1 +addx 24 +addx -19 +addx 1 +addx 16 +addx -11 +noop +noop +addx 21 +addx -15 +noop +noop +addx -3 +addx 9 +addx 1 +addx -3 +addx 8 +addx 1 +addx 5 +noop +noop +noop +noop +noop +addx -36 +noop +addx 1 +addx 7 +noop +noop +noop +addx 2 +addx 6 +noop +noop +noop +noop +noop +addx 1 +noop +noop +addx 7 +addx 1 +noop +addx -13 +addx 13 +addx 7 +noop +addx 1 +addx -33 +noop +noop +noop +addx 2 +noop +noop +noop +addx 8 +noop +addx -1 +addx 2 +addx 1 +noop +addx 17 +addx -9 +addx 1 +addx 1 +addx -3 +addx 11 +noop +noop +addx 1 +noop +addx 1 +noop +noop +addx -13 +addx -19 +addx 1 +addx 3 +addx 26 +addx -30 +addx 12 +addx -1 +addx 3 +addx 1 +noop +noop +noop +addx -9 +addx 18 +addx 1 +addx 2 +noop +noop +addx 9 +noop +noop +noop +addx -1 +addx 2 +addx -37 +addx 1 +addx 3 +noop +addx 15 +addx -21 +addx 22 +addx -6 +addx 1 +noop +addx 2 +addx 1 +noop +addx -10 +noop +noop +addx 20 +addx 1 +addx 2 +addx 2 +addx -6 +addx -11 +noop +noop +noop diff --git a/2022/in/day11.pzl b/2022/in/day11.pzl new file mode 100644 index 0000000..f6d24aa --- /dev/null +++ b/2022/in/day11.pzl @@ -0,0 +1,55 @@ +Monkey 0: + Starting items: 76, 88, 96, 97, 58, 61, 67 + Operation: new = old * 19 + Test: divisible by 3 + If true: throw to monkey 2 + If false: throw to monkey 3 + +Monkey 1: + Starting items: 93, 71, 79, 83, 69, 70, 94, 98 + Operation: new = old + 8 + Test: divisible by 11 + If true: throw to monkey 5 + If false: throw to monkey 6 + +Monkey 2: + Starting items: 50, 74, 67, 92, 61, 76 + Operation: new = old * 13 + Test: divisible by 19 + If true: throw to monkey 3 + If false: throw to monkey 1 + +Monkey 3: + Starting items: 76, 92 + Operation: new = old + 6 + Test: divisible by 5 + If true: throw to monkey 1 + If false: throw to monkey 6 + +Monkey 4: + Starting items: 74, 94, 55, 87, 62 + Operation: new = old + 5 + Test: divisible by 2 + If true: throw to monkey 2 + If false: throw to monkey 0 + +Monkey 5: + Starting items: 59, 62, 53, 62 + Operation: new = old * old + Test: divisible by 7 + If true: throw to monkey 4 + If false: throw to monkey 7 + +Monkey 6: + Starting items: 62 + Operation: new = old + 2 + Test: divisible by 17 + If true: throw to monkey 5 + If false: throw to monkey 7 + +Monkey 7: + Starting items: 85, 54, 53 + Operation: new = old + 3 + Test: divisible by 13 + If true: throw to monkey 4 + If false: throw to monkey 0 diff --git a/2022/in/day11.ref b/2022/in/day11.ref new file mode 100644 index 0000000..30e09e5 --- /dev/null +++ b/2022/in/day11.ref @@ -0,0 +1,27 @@ +Monkey 0: + Starting items: 79, 98 + Operation: new = old * 19 + Test: divisible by 23 + If true: throw to monkey 2 + If false: throw to monkey 3 + +Monkey 1: + Starting items: 54, 65, 75, 74 + Operation: new = old + 6 + Test: divisible by 19 + If true: throw to monkey 2 + If false: throw to monkey 0 + +Monkey 2: + Starting items: 79, 60, 97 + Operation: new = old * old + Test: divisible by 13 + If true: throw to monkey 1 + If false: throw to monkey 3 + +Monkey 3: + Starting items: 74 + Operation: new = old + 3 + Test: divisible by 17 + If true: throw to monkey 0 + If false: throw to monkey 1 -- cgit v1.2.3