diff options
Diffstat (limited to '2020/05')
-rw-r--r-- | 2020/05/.gitignore | 1 | ||||
-rw-r--r-- | 2020/05/Makefile | 6 | ||||
-rw-r--r-- | 2020/05/input | 908 | ||||
-rw-r--r-- | 2020/05/puzzle-1.awk | 2 | ||||
-rw-r--r-- | 2020/05/puzzle-2.awk | 11 | ||||
-rwxr-xr-x | 2020/05/puzzles.sh | 4 | ||||
-rw-r--r-- | 2020/05/seatids.c | 37 |
7 files changed, 969 insertions, 0 deletions
diff --git a/2020/05/.gitignore b/2020/05/.gitignore new file mode 100644 index 0000000..e2451f9 --- /dev/null +++ b/2020/05/.gitignore @@ -0,0 +1 @@ +seatids diff --git a/2020/05/Makefile b/2020/05/Makefile new file mode 100644 index 0000000..48f7dd4 --- /dev/null +++ b/2020/05/Makefile @@ -0,0 +1,6 @@ +all: + ${CC} ${CFLAGS} -o seatids seatids.c + +.PHONY: clean +clean: + rm -f seatids diff --git a/2020/05/input b/2020/05/input new file mode 100644 index 0000000..e3bc909 --- /dev/null +++ b/2020/05/input @@ -0,0 +1,908 @@ +FBBFBBBRLL +FBBFFBFLLL +BFFFFFFLRL +FBFBFFFLRR +BBBFBFBRLL +BFBBFFBRLL +BBFFFFBRLL +BFBFBBBLRR +FFBBFBFLLR +FBBBBFBRRR +FFBFBBFRLR +FBBFFFFRRR +BFBFFBFRRL +FFFBBFFLLL +FFFFBBFLLL +FFBFFBBRLL +FBBBBBFLRR +FFFBFFFLRR +FBBBBBFRLR +BFFBFFBLRL +FBBFBFBRRL +FBFBFBFRRR +FBBBFBFLRR +FFBBFBFRRL +FFBFFBFLRL +BFBFBFBLRR +BBFBBBFRRL +BFBFBBFRLL +FBBFBFBLLR +BFFFBFFLRR +FBBBFFFRLR +FBBFFFFLLL +BFFFBBBLRL +BFBBBFBRLR +BFBBFFFLRL +FFFBFFFRRR +BBFFBFFRLL +FFBFBBFRRR +BBBFFBBLLL +FFBBBFFRRR +BFFBFBBRLR +BBFBBFFRLR +FFBFBBFLRL +BFBBFBBLLL +FBBFBFBLLL +FBBFBBFLRL +BFBFBBBRLR +FFBFFFFLRL +FBBFFFFRLR +BFBBBFBRLL +FFFBBBBLLR +BFFFBFFLLL +BFFBFFFRRR +FBFFFFBRLL +BFBFFFBRLR +FFBBFFFLRL +FFBFBFBLLL +FBFBBFBRLR +BBBFFFFLLR +BBFFBBBRLR +FFBFBFBLRR +BFBBFBFLLL +FFBFFBBLLR +FBBFFBBLLL +BFBFBFFRRR +BBFBBBFRLL +BFBFFBFLRR +BBBFFFFRLR +BFFBFBFLRR +FFFBFFFRLR +FFBBFFBLRL +FFBFFBBLRL +FFBBBBFLLL +FBBBFBBLRR +FFBFBFFRRR +BFFBFBFRRL +FFBBBFFLLL +BFFBBFFLLL +BFBFFFBLRR +FFBBBBFRRR +BBFFBBFRLR +FFFBBFFLRL +BFFBBFFRRL +FFFBBBFLLL +FBBFFBBLRR +BFFFBFFLLR +BBFBFBFLRL +BBFFFFFLRL +FBBBFFBLLR +FBFFFFFLLL +BBFFBBFLRL +FBBBBBFLLR +BBBFBFFLLL +FBBBBBFRRL +BFBBFFBRLR +FFBBBBBLLR +FFBFBFFLRL +BBFBBBBLRR +BBFFBBBRRR +FBFBFBFRLL +FBBBFFFRLL +BFFBBBBLLR +BFFFFFBLLR +FFBBBBFRLL +BFFFFBBLRR +FBBFBBBRLR +BBBFFFBLRL +BFFBBFBRRR +BBFBBFBRRR +BFFBBBBRRR +BBFFBBFLLR +FBFFBBBLLR +BFBBBBFRLL +BBFBFBFLLL +BFBBFFBRRR +FBFBFBFRLR +FFFBFFBLRL +FBFBBFFRLR +BFBFFBBRLL +BBFBFFFRLL +FFFBBBFRLR +FFBBBFBRRR +BBFBFBBRLR +FBFBFBFLRR +BBFFFBBRLL +BBFFBFBLLL +FFFFBFBRRR +BBFFBBBLRL +BBBFFFFLLL +FFBBBFBRLR +FBFFFBFRLR +BFBFBBBLLR +FFFBBFBRLL +BFFFFBBLLR +BFBBBFBLLL +BBFFBFFLRR +FBFFFBFRLL +BBFFFBFLRR +FFBBFFBLRR +FBFFBFFLRL +FFFBBFFRRL +BFFBFFFLRL +FFFFBFBLRL +FBFBBBBRLR +FFBBFBBRLL +FFFBBBFLRL +FFBFBBFLRR +BFBBBBFLRL +FBFBBFBLRL +FBBFFBBRRL +FBFFBBFRRL +BFFBBFFRRR +FBFBFFFRRR +FFBBFBFLLL +FBBFFFBLRL +BFBBBBFLRR +FBFBBFFLRL +BBFBBFBLLL +BBBFFBFRLR +FBBBFFFLRR +BBFFFBFRLR +BBBFFBFLLL +FBBFFFBRRR +FFFBBBFLRR +FFBFBBBRLL +FBFBBFFRRL +BFBBFBFRLL +FBFFBBBLLL +FFFFBBBLLL +FFBBBBBRRL +BBBFBFFLRL +FBBBBFBLRL +BBFFBBBLLL +BFFBFFFLLR +FBBBBBBLLL +FFFBFBBRLL +FFBFBBFLLL +FFBFBBBRLR +BFBBBFBLRR +FBBBBBBLRL +BFBBFBBRRL +BBFBBBFLLR +FBFFBFBRLR +FFBFBBBLRL +FFBBFFFRRR +FBBBBFFLLL +FFBFFBFRLL +FFBFFBBLRR +BFBFFBFRLL +FFFFBFBRLL +FBFFBFBLLR +FFFBFBBLLL +FBBBBBFRRR +FFFBBBBRLL +FBFFBFBLRL +BBFBFBFRRL +FFFBFFBLRR +BFFBFFBRRR +FBFFFFFLRL +FBBFBFFLRR +FBFFBFBLRR +FBFFFBBLLL +FFBBFBBLLL +BFFFFBFLLL +FBBBFBFLRL +BBFBFFBLLR +BBBFFBBRRL +FBFBFFFRLR +FBFFBFBRRR +FBBBFFFRRL +BFBFFBBRLR +FBBFFFFRRL +BBFFFFFRLR +FFFBFBFRLR +FBBFFFFLRL +BBFFBBBLLR +BFFFBFBLLL +FFFBFFFLLR +FBFBBFBRRL +BFBBBFFLLR +BFBFBBFLLR +BFBFBFFLRL +FBFFBBFLLR +FFFBFFFRLL +FBFBFBFLLL +FBFFFBFLLR +FFFBFBBRRR +BFFFBBBRRR +FBBFBFFLLL +BBFFFBBRRL +FBBBFBBLLR +FBFBBFBRRR +BFFFBBFLRR +BBFBFFFRRR +FBBBBBBLRR +BFBFBBFRRR +BBFBBBBRLR +FFBBFFBLLR +FFBFBFFRLL +BBFFBFFRRL +BBFFBFBLRR +FBBBFFBLLL +FBFBFFFLLL +BBBFBFFRRR +BBFFFFBLLR +BBBFBFBLLR +BFBFBFFLLL +BFBFFFBLLL +BBFBFFFRLR +FBFBBBFRLR +FBFBBBFLRR +FBFBBBBLLR +FBBBFBFLLL +FFBBFFBRRR +FBBFBBFLLL +FBFBFFBRRL +BFBFBBBRRR +BFFBBBBLRL +FFFBBBBLLL +BFBBBFFLLL +FBBFFBFRLR +FFFBFFFLRL +BBFFFBBLLR +BBBFFBFRRR +BBFBBBBRRL +FFBFFFFRLR +FFBBBFBLLL +FFBFFFFLLL +BFFFFBFLRR +BFFFBFFRRL +BFBBFBBLRL +FBFBBBFLLR +FFFBFBBLRR +FFBFFBBRRL +FFBBFBBLRR +FFBFFFBRRL +BBBFFFBLRR +BBFBFBBRLL +BFBBBBBLLL +FFBBBBBRLL +FBFBFBBLLR +BFBFFFFLRR +FBBBBBBRLL +FBFFFBBRLL +FBBBBFBLLL +BFFBFFFLLL +BBFBFBFRLR +BFBBBFFLRR +BBFBFFFLRR +BFFBBBFLRL +BFBFFBFLRL +FFFBFBBRRL +BBBFFBBLLR +FBFBBBBLLL +FBBFBBFLLR +FBFFBFBRRL +BFBBFFFLRR +FBFBBBBRRL +FBBBBFBLLR +FBFFFFFLRR +FFBBBFFRLR +BFBBBBBRRL +BBBFFFBLLR +BFFBBBFLRR +FFBBBBBLRR +FBBFFBFRLL +BFBFBFFRRL +FFFBFBFRLL +FFBFFFBRRR +FFFFBBFRLR +BBFFFBFLLL +FFFFBFFRLL +FBBBFBFRRL +FBBBFFFRRR +FFFFBBFRRR +FFBFFFBLRL +BBFBBBFRRR +BFFBFFFRLR +FFFBFBFRRR +FFFFBBBRLL +FBFBFFBLRR +BBFFBFFLLL +BBBFFBBLRL +BBFFBFBLRL +FFBBFBBRRR +BFFBFBBRLL +BFBBBBBRLL +BBFFBBBLRR +FFBBBFBLRR +FBBFBBBLLR +BFBBBBBRRR +BBFBBFFLRR +BBFFFBBLLL +BFBBFFFRRR +BFBBFFBLLL +BFBFBBBLRL +BFBFFBBLRR +BBFFFBBLRL +FBBFFBBRLL +FBFFBFFRLR +FBFFBFFLLR +BFFFBBFLRL +FFBFFBFRRR +BFBFFBFRRR +BFFFFBBRLR +FBBFFBFRRL +FFFBFBBLRL +BFFFBBBRLL +FBFFBFFRRL +BBBFBBFLLL +BBBFFBFLRL +FBFFBBFLLL +FFFFBBFLRR +BFFFFBFRLR +BFBBBFBRRR +BBFBBFFLRL +BFBBFBFRRL +BFFBFBFRLL +FBFFBFFLLL +BFFFBBFRLR +FFBBFBFLRR +BFBBFBBRLL +FFFBBBBLRL +BFBBBFBRRL +FBFFFFFRLR +FFBFBFBLLR +BFBBFBBLLR +BBBFFBFLRR +BFFBBBBRRL +FBBBBFFRLR +FBFFFBFRRL +FFBFFFFRLL +FFBBFBBLLR +BBFBBBBLLR +BFBFBFFRLR +BBBFFFBRLR +BFFBFBBLLL +BFBFBBFRRL +FFFBFFBRRR +FFFBFBBLLR +FFBBFFBRLR +FFFBBBBRLR +FBBFFBFLRR +BFFBFFBLLL +FBFBBBBRRR +FBFFFBBLRL +BBBFBFFRRL +FBFFBBBLRR +BFBBFFFRLL +BFBFFFFRRL +FBFBFFFRLL +BFFFBFBLLR +FBBFBBBLRL +FBBFFFBLLL +FBFBBBFRRR +FFBFFBFLRR +BBFBFBBRRL +BBFBBBFLRL +BBFFFFFRLL +FFBFFBBRLR +BBFBBBBLLL +BBFBFFFLRL +FBFBBFBRLL +FBFFBBBRRR +FBFBFBFRRL +BFFFFFBRRR +FFBFBBBLLL +FFBBFBFLRL +BFFBBBFRLL +FBBBFFBRRR +BFFBFBFLRL +BBFFFBBLRR +BBFFBFBRRL +FBFBFBFLLR +FFBFBFBRRL +BFFFFBBRLL +BBFFFFBRRL +FFBBFFBRLL +BFFBBFBRLL +FBBBFFBRLL +BFBFFFBLLR +FFFBFBFRRL +BBFFBFBRRR +BFFFFFFLLR +FBBFBFFRRL +BFFBBBBLLL +FFBBFFFLLL +FBBFFBBLLR +FFFFBBFRLL +FBFBFFFRRL +BFFFBBFRRR +BBFBFFBRRL +BFFBFBBRRR +BFBFFBFRLR +BBFBFFBLRR +BFBBFBBRRR +BFBFFFFRLL +BBFFBBBRLL +FFBFFFFLRR +BBBFBFFLLR +FFFBBFBRLR +BFBBFFFLLL +FBBBFBBRLR +FFBFFBFRLR +FBFBBFBLLL +FBBBFBFRRR +FBFFFBBRRR +BFFBFBFRRR +FFBBBBFRRL +BBFBFBBLLL +BBFFBFBLLR +BBBFFFFRRL +FFBFFFFRRR +BBFFBBFRRR +FFBBBFBLRL +FBBFBFBLRL +FBBBFBFRLR +BFFBFBFRLR +BFFFBFBRRR +FFBBFFFRLL +FBFFBFBRLL +FFBBBFFLRR +FBBBFBBRRL +BBFBBBBLRL +BFFFBBBLLR +BFBBBBBLRL +BFFFFBFLRL +BFFFFFFRLL +FFFFBBBRRL +FFBFBBFRRL +BBBFFBFRRL +FBBFBFFLRL +BBBFBFBLRL +FBBFBBFRRL +FBFBFFBLLL +FBBBBBBLLR +BBBFFFBRRL +FFBFBBFLLR +BFBFFBBRRL +FFBFFFBLRR +BBFBFBFRRR +FBBBBFBLRR +FFBBFBFRRR +BFBBFBFLRL +BBFFBFFLLR +FFFFBBBLLR +FFFBBFBLLL +FFBBFFFRRL +BFFBBBFRRL +BFBBBBBLLR +BBBFFFFRRR +FBFFBBBRLR +FBFFBFFRRR +FFFBFBFLRL +FBFFBFFRLL +FBBBFFFLLL +BFFFFFBLRR +BFBBFBFRLR +FBFBBBBRLL +FBFBBBFLRL +FFFBBFBLRR +BBFBBBFRLR +FBFFFFBLLR +BBBFFBFRLL +FBBFBFFRLR +BFFFBBFRRL +BFFFFBBRRR +FBFFBFBLLL +BFBFFFBRRR +BFBFBBFLRR +FBFFBBBLRL +FFBFBBFRLL +FBBBFBFRLL +FFBFFBBRRR +FBBFFBBRLR +BFFBFBBLRL +FFBFBFFRRL +FBBFFFFLRR +BBFBBFFRRR +BFBBFFFRRL +FBBFFFBRLL +FFBBBBFRLR +BBFFBBFRRL +BFBBFBFRRR +BFFBBFFLLR +BBFFBBFLRR +BBFBBFFLLR +BFFFBBFLLL +FBBBFFBRRL +BBFFFFFLRR +BFFFBBBRLR +BFBFBBFLRL +BBFBBFBLRR +FFBFFFFRRL +BFFBBBFLLL +FBFBFBBRLR +FFBBFFFLLR +FFFBFFFRRL +BBFBBFBRRL +BBFFFFFLLR +FFFFBFBRLR +BFFFFBFRLL +BBBFBFFRLR +BFFFFBBLRL +BFFBBFFLRR +FBFFFBBLRR +BFFFBBBLLL +BFFBBBFLLR +BFFBBFBRRL +FBBFBFBRRR +FBFBFFFLLR +FFFBBFFRLR +FFBFBFFLLR +FBBFFBFRRR +FBFFBBFRLR +FBBFFFBRLR +BFBFFFBRRL +BFFFFBFLLR +BBBFFFFLRR +BFBFBFFRLL +FBFBFBBRRL +FFBFBFFLLL +BBFFFFBRRR +FBFBBFFRLL +BBFFFFFLLL +FFFFBBBLRL +BFFFFBBLLL +FFFBFBFLLL +FFFFBFBLLR +FFFBBFBLLR +FFFBBFBLRL +FFFFBFFRRR +BBFFFFBLRL +BFBBBBFLLR +BBFBFBBLLR +BFFFFFFRLR +FBBFFFFRLL +FFFBFFBLLL +BBBFFBBRRR +BBFBFBBLRR +FBBBBFFLRL +FFBBBFFLLR +FBBBBFFRLL +BBFBFBFLRR +BFFBFBBLLR +BBBFFFFRLL +FBFBFFBRRR +FBFBFFBLLR +FFFBBFBRRL +FBBBBBBRLR +FBFFFFBRRL +FFBBFBBRRL +BBBFFFBRLL +FFFBFFBLLR +BFBFBBFLLL +BFFBFBFLLR +BBFFBBFRLL +BFFFBBFLLR +BFBBFBFLRR +FBBFFBFLLR +BBFBBFFRLL +FFBBBBBRRR +FFFBBFFLLR +BBBFFBFLLR +BBFBFFBLLL +FFBBFBBRLR +FBBBBBFRLL +BBFBFFBRLR +BBFFBFBRLL +BFFBFFBLLR +FBFFBFFLRR +FBFFFBFLRL +BFBBFFFLLR +FBBFBFFRRR +FBFBFBBLRR +BFBBBBFRRR +BFBFFFFLRL +FFFBFFFLLL +FFFBBBFRLL +FFFBBBFRRR +FBBBBBFLRL +BBFFFFBLRR +BFFBBBFRLR +BFFBFFBRLR +FBBBBFBRLR +FFBFBBBLRR +BBFBFFFRRL +BFFBFBBLRR +BFFBBFFLRL +BFBFFFFRRR +FBBBFBBLRL +BFBBBFFRRL +FBFBBBFLLL +BFFBBBBRLL +FBBFFFBLLR +BBBFBFFLRR +FBFFBBFLRR +BFBBFFBLLR +BFFBBFFRLR +BBFFBBBRRL +BFFBBFBLLR +FBBBBBFLLL +BBFFFBFLLR +BFBBBFFLRL +FFBBFBBLRL +BBFBFBFLLR +BBFFFBFRLL +BFFFFFBRRL +BBBFBFBRLR +FFFBBBBRRR +FBFBBFFRRR +BFFBFFFRRL +BFFFBFFRLR +BFFFBFBLRR +BBFBBBFLLL +BFBFFFFLLL +BBFBBFBLLR +BFFFBBFRLL +FFFBFFBRLL +FBFFFFBLLL +BFBFFFFLLR +BFBFFBBLLR +FBFFBBFRRR +FBFBBBFRRL +BFFBBFBRLR +BBFFFFBLLL +BFBBBFFRLL +BBBFFBBRLL +FBFFFFBRLR +BFBFFBBLLL +FBFBFBBRLL +FFBFFFBRLL +FFFBFFBRLR +FBFFFBFLLL +FFFFBFFRLR +BBFBBFFLLL +FFFFBFBLRR +BFBFFFBLRL +FBBBBFFRRR +BBBFFFBRRR +FBBFBFFRLL +FFBFFBFRRL +BBFBBFBRLR +FFBFBFFRLR +BFBFBFBRRL +FFFBFBBRLR +BFBBBFFRRR +FBFFFFBLRR +FFBBBFBLLR +FBBBFFBLRL +FFFBBFFRLL +FBBFFBBLRL +BFFBBFBLRL +FBBBBFFLRR +BFFFFFFLRR +FBFBBBBLRL +FFBBFFFRLR +BFFFFBFRRL +BBBFBFBRRR +FFFBBFBRRR +FFFFBBBRLR +FFFFBBFLRL +FBBFBBFRLL +BBBFBFFRLL +BFBFFFFRLR +BFBFBFBRRR +FBFFFFFLLR +BFFBFFFLRR +FFBFBFBRLR +BFBBBFBLLR +BBFBFBFRLL +BFFFFFFRRR +BBBFBFBRRL +FBFBBFFLRR +BFBBFFBRRL +BFBFFFBRLL +BFBFFBFLLL +BBBFBFBLRR +BBFBBBBRLL +FFBFFBBLLL +BBFBBFBLRL +FBFBBFFLLL +FBBFFBFLRL +BBFFFBBRRR +FFBBFBFRLL +BFFFFFBRLR +FFBFFBFLLL +BBFFBBFLLL +BFFBFFBLRR +FFBBFFBLLL +FFFBFBFLLR +FBFFBBBRRL +FBFFFBFLRR +BBFFFFFRRR +FFBFBFBRRR +FBBBFBBRRR +FBFBFFBRLL +FBBBBFBRRL +BBFFFFBRLR +FFBFBFFLRR +FFBFFFBLLR +BBBFFBBLRR +BFFFFFBRLL +BFFFFBFRRR +FFBBBBBLRL +FFFFBBBLRR +FBBFBFBLRR +FFBFFBFLLR +FBBFBFBRLL +BFBBFBBLRR +BFBBBFBLRL +BBFBBFFRRL +BFBFBFBLRL +FBFFFFBLRL +FBFBBFBLLR +FFFFBFFRRL +FFFBBFFRRR +FBFFFFFRLL +FBFBBFBLRR +FFBFFFBLLL +BFFFFFFRRL +FBBFBBBRRL +BFFFFFBLLL +FFBBFFBRRL +FBFFFBBRLR +BFBFBFFLRR +FBBBBFFRRL +FBBFFFBLRR +FBFFFBFRRR +FBBBFBFLLR +FFFBBBBRRL +FBBBBFFLLR +BFBFFBBLRL +FBFBFBBRRR +BBFBFFFLLL +FFBBFFFLRR +BFFFFBBRRL +FBBBBBBRRL +BFBFBBFRLR +BFBFBFBLLR +FBBFBFFLLR +BFFFFFFLLL +BBBFBFBLLL +BFBBFFFRLR +FBFFBBBRLL +BFFBFFBRLL +BFFBBFFRLL +FFBBBFFLRL +FBBFBBBLLL +FFFFBFBRRL +BFBFBBBRRL +BFFBBBBLRR +BBFBFBBLRL +FFBBBBFLRL +BFBBBBFRRL +BFFFBFBRLR +FFFBBBFLLR +FBFBFFBLRL +FFBBBFFRRL +FBBBFFBRLR +FFBFFFFLLR +FFBFBFBLRL +BBBFFBBRLR +FBFBBBBLRR +BFBFBFBRLL +FFBBBBBLLL +FBFBFFFLRL +FFFBFFBRRL +FBFFFFFRRR +BFBBBFFRLR +FBFBFBFLRL +BFBFBFFLLR +FBFBBBFRLL +BFBBBBBLRR +FBBFBBFRRR +BFFFBFFRLL +FFFBFBFLRR +FFFBBFFLRR +BFBFBFBRLR +FBBBFFFLLR +FBFFFFBRRR +FBBFFFFLLR +BFFBFFFRLL +FBBBFBBRLL +FBFBFBBLLL +BFFBFBFLLL +FFFBBBFRRL +FFFFBBFRRL +FBFBBFFLLR +BBFBFFBRRR +BFBBFFBLRL +FFFFBFBLLL +BFBFFBFLLR +BFFBBFBLLL +FBBBBBBRRR +FBBFFFBRRL +BFFFBBBRRL +BBFBBBBRRR +BBFFFBFRRL +BBFBFFFLLR +BFFFBFFRRR +BFBFBBBLLL +BBFFFBFRRR +BBFFBFBRLR +FBFBFBBLRL +BFBBFFBLRR +BBFBFFBRLL +BFFBBBBRLR +FBBFBBFRLR +FFBFBBBLLR +BFBFFBBRRR +FBBBFFFLRL +BBBFFFFLRL +BFBBBBFRLR +BFFFBFBRRL +FBFFFFFRRL +BBFFFFFRRL +FBFFBBFLRL +FBBFBBBRRR +BFBBBBBRLR +BBFFBFFRLR +FBBFFBBRRR +BBBFFFBLLL +FFBBBFFRLL +BBFFFBBRLR +FFBBBBFLLR +FFBBBFBRLL +BFFFBBBLRR +FFFBBBBLRR +FFBFBBBRRR +FFBFBBBRRL +BBFBBBFLRR +FBBFBBBLRR +FBFBFFBRLR +FBFFBBFRLL +BBFFFBFLRL +FBBFBFBRLR +BFBBBBFLLL +FBBFBBFLRR +FBFFFBBRRL +BBFFBFFLRL +BFFBBBFRRR +BFFBBFBLRR +FBFFFBBLLR +BFFFBFBRLL +FFBFBFBRLL +BBFBBFBRLL +BFFBFFBRRL +FFFFBBFLLR +BFBFBBBRLL +FFFFBBBRRR +FFBBBFBRRL +BFFBFBBRRL +BFBFBFBLLL +FFBFFFBRLR +FFBBFBFRLR +FBBBFFBLRR +BBFFBFFRRR +BFFFBFFLRL +BFBBFBFLLR +BBFBFFBLRL +FBBBFBBLLL +FFBBBBBRLR +BFBBFBBRLR +FBBBBFBRLL +FFBBBBFLRR +BFFFFFBLRL +BBFBFBBRRR
\ No newline at end of file diff --git a/2020/05/puzzle-1.awk b/2020/05/puzzle-1.awk new file mode 100644 index 0000000..831c127 --- /dev/null +++ b/2020/05/puzzle-1.awk @@ -0,0 +1,2 @@ +$0 > max { max = $0 } +END { print max } diff --git a/2020/05/puzzle-2.awk b/2020/05/puzzle-2.awk new file mode 100644 index 0000000..8b9b823 --- /dev/null +++ b/2020/05/puzzle-2.awk @@ -0,0 +1,11 @@ +{ ids[NR] = $0 } + +END { + n = asort(ids) + for (i = 1; i <= n; i++) { + if ((i + 35) != ids[i]) { + print i + 35 + exit + } + } +} diff --git a/2020/05/puzzles.sh b/2020/05/puzzles.sh new file mode 100755 index 0000000..2066d76 --- /dev/null +++ b/2020/05/puzzles.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env sh + +./seatids | awk -f puzzle-1.awk +./seatids | gawk -f puzzle-2.awk diff --git a/2020/05/seatids.c b/2020/05/seatids.c new file mode 100644 index 0000000..9c3b797 --- /dev/null +++ b/2020/05/seatids.c @@ -0,0 +1,37 @@ +#include <math.h> +#include <stdio.h> + +/* Parse the input file `input` and print out all of the seat IDs which can be piped into both awk + * scripts + */ +int +main(void) +{ + FILE *fpt = fopen("input", "r"); + /* +2 for \n and \0 */ + char bpass[12]; + while (fgets(bpass, 12, fpt) != NULL) { + int lower_r = 0; + int upper_r = 127; + for (int i = 0; i < 7; i++) { + if (bpass[i] == 'F') + upper_r = (upper_r + lower_r) / 2; + else + lower_r = round((upper_r + lower_r) / 2); + } + + int lower_c = 0; + int upper_c = 7; + for (int i = 7; i < 10; i++) { + if (bpass[i] == 'L') + upper_c = (upper_c + lower_c) / 2; + else + lower_c = round((upper_c + lower_c) / 2); + } + + int seat_id = upper_r * 8 + upper_c; + printf("%d\n", seat_id); + } + + return 0; +} |