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