advent-of-code

Perserverance, or the lack thereof

git clone git://git.shimmy1996.com/advent-of-code.git
commit 1b3f3dc5dc653da9efa35d575dea3ced8fa9fedc
parent a89768987882d6fbcf70391a0c5c596048cfa0bd
Author: Shimmy Xu <shimmy.xu@shimmy1996.com>
Date:   Sat,  5 Dec 2020 11:35:45 -0600

Add 2020 day 05

Diffstat:
A2020/day05/input.txt | 839+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2020/day05/main.go | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 905 insertions(+), 0 deletions(-)
diff --git a/2020/day05/input.txt b/2020/day05/input.txt
@@ -0,0 +1,839 @@
+BFBFFFFLLL
+BBFBBFBRLL
+BFBBFFFRRR
+FBFFBBBLLL
+FFBBFBBRLL
+BBBFFFFLRL
+BFBBBFBRRR
+FBBFFFBLRL
+FFBFBBFLLR
+FBFFFFBLRL
+BBFFBBFRLL
+BBFBBBBLLR
+FFBBBBFRLR
+BBFFBFFRLR
+BFFBBFFRRL
+BBFBBBFLLR
+FBFBBBBRRL
+BFFFBFFLRL
+FBFFFBFRLL
+FBBBFFBLRR
+FFFBFBBRLR
+FBBFBBFLLR
+FBFBFFFLRL
+BFFBFBFLLR
+BBFBFBBRRL
+BFFBBFBRLR
+FBFBFFFRRL
+BFBFFBBRRL
+FBFBFBFLLL
+BFFBFFBRRL
+FFBBBBBRRL
+FFFBFBFRLR
+BBFFFBBLRL
+BFBFBFFRLL
+BFBFFFBRLR
+FBBBFFFRRR
+BBFFFBFRLL
+FBBBFBFRLL
+FFBBBFFLRR
+FBFBBFBLRL
+FBBBBBFLLR
+FBFFBBBLRL
+FFFBBFFRRL
+FBBBFFFRLR
+BBFBFFFRLR
+BBFBBFBLLL
+FBFFBBBRRL
+BFFFFBFRRR
+FBBFFBFLRR
+FBFBBBFLRL
+BFBBBBBRRL
+BBFFFFBLRL
+FBFFFBFLLL
+FFFBBFFLLR
+FBBBFBFLRR
+BBBFFBFRRL
+BFBFFFFRLR
+FFBFFFBRLR
+FBFFBFBRLL
+FBBFFFFRLL
+FFFBBFBRRR
+FBBBBFFLRR
+BFBBBFBRLR
+BFFFFFFRRR
+FFBBBBFRRR
+BFFBFBFRRL
+BFFBFFFRLR
+BBFFBFBLRR
+FBFFFBBLLL
+FBFFFFFRLR
+BFBBFBFLRR
+FBBBBBBLRL
+BFFFFBBLRR
+BFFBFFFRRR
+FBFFFBFLRL
+BFBBFFBLRR
+BBFBBBBLLL
+BBFBBBFRRL
+FBBBBBBRLR
+BFFBFBFLRR
+BFFBFFFLLR
+FBBBBBFLRL
+FBFFFBFRRL
+FFBBBBFRRL
+BFBBBBBRLR
+FBBBBBFRRL
+FFBFBFFLLL
+BBBFFFFRRL
+BBFBBFBRRR
+BFBFFFFRLL
+FBFFFFFLLR
+FFFBBFFLRL
+FBFFBFFLRR
+FBFFBBFRLR
+FFBBBFBLLR
+BFFFFBFLRR
+BBFBFBFRRR
+FBBFBBBLLL
+FBBFBFBLLL
+FBBBFFBLRL
+BBBFFBFRRR
+FBBBFBFLRL
+FBFFFBFRRR
+FBFFBFBRRR
+FFBBFFBRLL
+BFBFBFBLLR
+BBFFFFBRRR
+FBBBBBBLLR
+FBBBBFFRLR
+BBFBBFFLRL
+BFBBFBFLLR
+FBFFFFFRLL
+FFBBFFFLLR
+BBFFFBFRRR
+BFBBBFFLLR
+BBFFFFBRLR
+FFBFBBFRLR
+BFBFFFBLLL
+FBFFBFFLLL
+FBBBFBBRLR
+BBFBFFFLLR
+FBFFFBBRLR
+BFFBFBBLLL
+BFFBBFFLLR
+FBBFFBBRLR
+BBFBFFBRLL
+FBFBBBFRRL
+BFBBBFBLLR
+BBFFBBBRLL
+BBBFFFBLRL
+BBFBFFBRLR
+BFFBBBFRRR
+FFFBFBBRLL
+FBFBFBBRLL
+BFFFFFBRLR
+FBFFBBBRRR
+FBFFBBFLRL
+BFFFBBBRLL
+FBBBBFFLLL
+BBFBFFFRRR
+BFBFBBFLLL
+FFBBFBFRRL
+FFFBBBBRLR
+BFFBBBBRLL
+FFBFBBFRRL
+FBFBFBFRLL
+BBBFFFBRRL
+BBBFFBFRLR
+FBFBFBFLLR
+BBFBBFFRLL
+FBFBFFFLLR
+BBFBFBFRRL
+BFFBBFBRRL
+FFBFFBFRLR
+BFFBBFBRRR
+FFBBFFBRRL
+BFFFFBBRRL
+FBBBBFFRLL
+FBBBFFBRRR
+FBBFFBFLLL
+BBBFFBFRLL
+FFFBBFBLLR
+BFFBBFFLRR
+BFBFBFFLLL
+BFBFFBBLRL
+FFFBBFBLRR
+BBFFBFBLLL
+FBBBFBFRRL
+BFBBBBBLLR
+BBFBFBBLLL
+FFBFBFFLRR
+BFFFFFFLLR
+BFBFBFFRRL
+BFBFBBFLLR
+FBBBBFFLLR
+FFBBFFBLLL
+BBFFBFBRRR
+FFFBBFBLRL
+FBFBFFBLRL
+BFBBBBBLLL
+BFFFFBFRRL
+FBFFFFFLRL
+BFFFBFBLRL
+BFFBFBFLLL
+BBFBBBFRRR
+FBFBFFBLRR
+FBFBBBBRLL
+BBFFFFFLRL
+FBBFFFBRRR
+FBFFFBBRLL
+BFFFBFFLLL
+BFFBBFFLRL
+FFBFFFBLLL
+BFBFBBBLLL
+FBBFBFBLRR
+FBFFBFFLLR
+FBFFBBFRRR
+BBFFFBFLLR
+BBFBBFBLRL
+FBFBBBFRRR
+BBFFFFBLLR
+FFBFBFBLRL
+FFBBBBBLLR
+FBFBFBBLRR
+FFBBBFFRLL
+FBBFBFBRLL
+BBFBFFBRRL
+BFBFFBFLRR
+BFBFFBBRLR
+FBBFFFFRRL
+FBFFFFFLLL
+FBFBBFBRLR
+BBFBBFBLRR
+BFBBBFFRLR
+FBFFBBBLRR
+FBFBFBBRRL
+BBFFBBFLRL
+BBFFFFBLRR
+FFBBFFBLLR
+BFBBFBBLRR
+BBFBFBBRLL
+BBFFFBFLLL
+FBBFBBBRRR
+BFBFBBFRLL
+FFBBFFBLRL
+FFFBBBFRRR
+BFBFFFBLRR
+BBFBFBBRRR
+BFBFFBBLLR
+BFFFBBBRLR
+FFBBBBBRLL
+FFFBBFBLLL
+FBFBBBBLRR
+FFBFFBBRLL
+BFBBBBFLLL
+BFFFBFFRLL
+BBFFFBFLRR
+BFBFFFFLRR
+BFBFBBBRLR
+BBFBBBFLRL
+FBBFFFFLLR
+FFFBBBBLLL
+BBBFFBFLLL
+FBFFBBBRLL
+FBFBFFFLLL
+FBBFFBFLLR
+BFBFBBFRRL
+BFFFFBBRLL
+FBFBFFBLLL
+BBFFFFFLLL
+FFBBBBFLLR
+FBFBBBFLLR
+BFBBFFBRRL
+FBBFFBBRLL
+BFBFFFFLLR
+BBFBFFFLRL
+BFFFBFBLRR
+FBBFBBFRRR
+FFBFBFFRRL
+BBFFFBBLLR
+BFBFBFFLRL
+BFBFFFBLRL
+FBFBBBFLLL
+FBBFFBBLLL
+BBBFFBFLLR
+BFFFBBFLRL
+BFFFBFFLLR
+BBBFFFFLRR
+BBFFBFFLLR
+BBFFFBBRRR
+BBBFFFBLLR
+BFBBBBFRLR
+FBBFBBBRLL
+BFBBFFBRLL
+FBFBFBFLRR
+BBFFFBFLRL
+FBFBFFBRLL
+FBBFBFBRLR
+FFBFBBFLRL
+BBFBBBFLRR
+BFFBFBBLRL
+BFFBBBBRLR
+BFFFFFBRRR
+FBBFFFBRRL
+BFBFFBFLLR
+FBBFBBFLRL
+FBBBBBBLRR
+BFBBBFBRRL
+BFFFBFBLLL
+FBFFFBBRRR
+FFBBFFBRLR
+BBFFFFFRRL
+FFBFBBBRRL
+FFBFBBFLRR
+BFFFBBBRRL
+FFBFBFBLRR
+BBFFBFBRLL
+BBFBBFBRRL
+BBFBBFFRLR
+FBBFBFFRLR
+BFBBFFBLLL
+BBFBFBFRLL
+FFBBBFFLLL
+FFBBBBBLRR
+FBBFBBFRRL
+BBFFBFBRLR
+BFFFBBFRRL
+BBFBBFFLLR
+FBFFBBFLRR
+BFBFBBBLLR
+FFFBBBBRLL
+BBFFFFFLRR
+BFBBFFBLRL
+BFBBFFFLLR
+FFFBFBFLLL
+FFBFFFFLLR
+FBFFFBFLLR
+BBBFFFFLLR
+BFFBFFFLLL
+FFFBBFBRRL
+FBBFFFFLLL
+FFFBBBFRLL
+BBFBBBBLRR
+FFFBBBFLRR
+FFBBFBFRRR
+BFBFBBBLRL
+BBFBBBFLLL
+FBBBFFBRLR
+BFFFBBBRRR
+FFBBBBFLRR
+FFBBFBBRRL
+FBBFFBFRLR
+BBFFBBFRRR
+BBFBBFBRLR
+BFFBBFBLRR
+FFBBBBBLRL
+BBFFBBBRRR
+BFFFBFBRRR
+BFFFFFFRRL
+BBFFBFBLRL
+FBFFFFBLRR
+FBFBBFFRRL
+BFBFFFBLLR
+FFFBFBBLRL
+BFFFFFFRLL
+BBFFFBBRRL
+FFBFBFBRRL
+FBBFBFFLLL
+FBFFBFBLRR
+BFFFFBBRLR
+FFBFFFBLRR
+BFBFFFBRRL
+FBBFFBFRLL
+FBFBBFBRRR
+FBBBFBFLLR
+FBBFFFBLLR
+BFFFFBFLLR
+FBBBBBBRLL
+BBBFFFFRLL
+BFFFBBBLRL
+FFFBFBFLLR
+FBFBBBBLLR
+FBFFBFFRRR
+BFFFBBBLLL
+BFBBFFBRRR
+FBBBBFFRRR
+BFBFBBFLRR
+BFFBFFBLRL
+BBFBFFFRLL
+FFFBBFBRLL
+FBBFFFFRLR
+FFBBFBBRLR
+BBFFFBBLLL
+BBFFFBBRLL
+FBBFFFFRRR
+BFBFBFBLRR
+FFBFFFFRRR
+FBFBFBFLRL
+FFBFBBFLLL
+FFBFBBBRLR
+BFBFFFBRLL
+FFBFFBBLRL
+BFBBBBBRLL
+BBFBFFBLRR
+FBFFFFBRLR
+FFBBBFBRRR
+BFBFBBBRRR
+FBBBBBFRRR
+FBBFBBBLRR
+BBFBBBBRRL
+BFFBBBFRLL
+BBFBFBFLLR
+FFBBFFBRRR
+BFFFBBBLLR
+BFFFBBBLRR
+FFFBFBFRRR
+BFBFBFBRRL
+FFBBBFBRRL
+FFFBBBBRRR
+FBFFBFFRRL
+BFFBFFFRRL
+FFFBBBFLRL
+FBBBBFFLRL
+FFBFFBBRLR
+FBBFBBBLRL
+FFBFFFFLRR
+FBFFBFBRLR
+FBBFBBBRRL
+FFBBBFBRLL
+BFFFFFBLRL
+FFFBBFFRLR
+BFBFFFBRRR
+FFBBFFFLRL
+FBBBBFBRLR
+FFBBBBFRLL
+FFBFFBBLLR
+FBFFFFBLLL
+FBFBBBBLLL
+BFFFBFBRRL
+FBBBBBFLLL
+FFBBFFFRLL
+FBBBFFFLLR
+BFFBBBBLLR
+BFBFBFFRLR
+BFBFFBBLLL
+FBFBBFFLRR
+FFBBFFFRRL
+FBFBBFFRLL
+BFFFFBFLLL
+FBBBFBBLLL
+FBFBFFFRLR
+BFFBBBBLRL
+FFBFFFFRLL
+BFBBFBBLLR
+FFBBFBBLRL
+FBFBBFBLRR
+FBBBBBBRRL
+FFBFBBFRRR
+FBFFBBFRLL
+FBBFFFBRLL
+BFFFBFBRLR
+BFFBFFBLRR
+BBBFFFBRLL
+BFBFFBBLRR
+BFBBBFBRLL
+BBFBFBFRLR
+FFFBFBBRRL
+BFFFFBBLLR
+FBFFBBBRLR
+BFBFFBFRLL
+FBFBFFBRRL
+BFFFFFFLLL
+BFFFBBFLLR
+BFFFBFBRLL
+BFBBBBBLRL
+BFFFFBFRLR
+BBFBFBFLRL
+FBBBBBFRLL
+BBFFBFFLRR
+FBFBFFBRLR
+FFBBBFBLRR
+FBBFFFBLRR
+BFBBBFBLRL
+BFFFBFBLLR
+BBFFBBFRLR
+BFBBFFFLRR
+BFFBFBBRLR
+FFBBFFFLLL
+FBBBFBFLLL
+BFBBBBFLRL
+FFBBBBBRRR
+FBBFFFBLLL
+BFBBFBBLLL
+FBBBBFBRLL
+FBBFBFFLRL
+BFFBBFBLLL
+FBBBFBBRRR
+BFFBFBFRLL
+BBFFBBBLRL
+BFBFBFBLRL
+FBBBFFFLLL
+BFFFBFFRRL
+FFBFFBFLLR
+BFFBFBBLRR
+BFFFFFBRLL
+BFBFBBBLRR
+FFFBBBBLRL
+BFBBBBBRRR
+BFFBFBFRLR
+BFFBBFFLLL
+BBFBBFFRRL
+FBBBFFFLRL
+FBFFBFFRLL
+FBFFFBFLRR
+FBBBFBBLLR
+BBFFFFBLLL
+BFFFBBFRLR
+BBFBFBBLRR
+FBBFBBBRLR
+FBFFFBBRRL
+FBBBFFBLLR
+FFBBBBFLLL
+BFFBFFBLLL
+FFBFBFBLLR
+BBFFBBBLLL
+BBFFFFFRLL
+BBFFFBBLRR
+FFFBBBFRRL
+BFFBFBBRRR
+BFFBBFFRLL
+FFFBBBFLLL
+FBFFFFFRRR
+FBBFBBFLRR
+FFBBFBFRLL
+FFFBFBFRLL
+FBBBFBBRLL
+BBFFBFFLRL
+FFFBBBBLLR
+BFFBFBBRLL
+BFBFFBFRLR
+BFFBFBBLLR
+BFFFBBFLLL
+BFFFFBFLRL
+FBFBBBBRRR
+FFBBBBFLRL
+BBFFFFBRLL
+FFBBBFFRRR
+FBFBBFBLLR
+FBBBFBBLRR
+BBBFFFFLLL
+BBFBBFBLLR
+BFBBFFBRLR
+BFBBBBFRRL
+FBBFFBBLRL
+BFFBFBFRRR
+BFBFBBFLRL
+FBFBBFFRLR
+FBBFBBFRLL
+FFBBFBFLRR
+BFBBFBFRRL
+BFBBBFFLRR
+BFBBFBBRRR
+FFBBBBBRLR
+BFBBFBFRLR
+FFBFFBFRRR
+BFFFFBBLRL
+BFFBBFBLLR
+BFFBBBFLRR
+FFBFFFBRLL
+BBBFFFBLLL
+FBBFBBFLLL
+BBFFFBFRRL
+FBBBFFFLRR
+FBBFBFBRRR
+FBBBFFFRRL
+BFFBBBFLLL
+BFBBFBBLRL
+FFBBFBBLLL
+BFBBBBFLLR
+FBFFFFBRRR
+FBBFFFFLRR
+FFFBFBBLLR
+BFBBFFFLRL
+FFBFFBBLRR
+FFBFBFBRLL
+FFBFFFBLRL
+FFFBBFFRRR
+FBBFBFFLRR
+FBFFBFBRRL
+BBFFBBFLLR
+FFBFFFBRRL
+BBFFBFFRRR
+FFBBBFBLRL
+FBBFFBFLRL
+FBFBBBFRLL
+BFFFFBBLLL
+BFFBBBBRRR
+FFBFBFBRRR
+FFBFBBBLLL
+BBFFBFFLLL
+BFFBFBBRRL
+FFBBFBFLRL
+FFBBFFFRLR
+BFBFBFFLLR
+BFBFBBFRLR
+FFFBFBBLRR
+BFFBFFBRRR
+BFFBFFFLRR
+FFBFFFBRRR
+FBBBFFBLLL
+FBFFBFBLLR
+BBFBFFBLLL
+FFBFBBFRLL
+BBFFFFBRRL
+FBFBFBBLLR
+FBFBFBBLLL
+FBBFBFFRRR
+FBFBBFBLLL
+BBFFBBFLRR
+BBFBFFBLRL
+FBFBFBBLRL
+BFFFFFBLLL
+BFFBBBFLLR
+BFBBBBBLRR
+FBFBBFBRLL
+FBFFFFBLLR
+BBFFBBBLRR
+FBFFFFFRRL
+FBFBFBFRLR
+BFFFBBFRLL
+BFFBFFBLLR
+BFBFFFFRRL
+FFBFFBFRRL
+FBBFBFFRLL
+FFBBBFBRLR
+BFBBBFFLRL
+FBBBBFBRRL
+FFFBFBFRRL
+BBFBBBFRLR
+BFFBFBFLRL
+BFFBBFBLRL
+FBFBFBFRRR
+FBBFFBBRRL
+FBFFBFFLRL
+BFBFFFFRRR
+FFBBFBFLLL
+FFFBBFBRLR
+BBFFBBBLLR
+BBFBFBFLRR
+BFFFFFBLLR
+BBFBFBBRLR
+FBFBFFFLRR
+BFBFFBFLLL
+BBFBBFFLLL
+FBBBFBBRRL
+FBFBFBBRLR
+FFBBBFFLLR
+BFFFFFBLRR
+BBFBFFFLRR
+FFBFBBBRLL
+BBFBFBFLLL
+BBFBBFFRRR
+BBFBBFFLRR
+FFBFBBBRRR
+FBFBFBFRRL
+BFFFFFFLRR
+BFBFBBFRRR
+FFFBBFFLLL
+FBFBBFFLRL
+FBFFBBBLLR
+BFFBBBBLLL
+FFBFFBFLLL
+FBFBFFBRRR
+BFBBBFFRRR
+BBBFFFFRRR
+BFBFBFBLLL
+FFBFBBBLRR
+BBFFBBBRLR
+FFBBFFBLRR
+BFBFBBBRRL
+FFBBFFFLRR
+FFFBBBBRRL
+BFBBFBFLLL
+FBBBBFBLRR
+BBFBFFFRRL
+FFBBFBFLLR
+BFFFFBBRRR
+BBFFBBFLLL
+FBFFBFBLLL
+BFBBFFFLLL
+FFBFFFBLLR
+FBFFFBBLLR
+BFBBBFFRRL
+FBFBBBFRLR
+FFBFFBFLRR
+BBFFFFFLLR
+FBBFBFFLLR
+BBFFBFBRRL
+BFBFBFFLRR
+BBFBFFFLLL
+BBFFFBBRLR
+BFBFFBBRLL
+BFBFBFBRLR
+BBFBBBBRLL
+BFBBFBBRLL
+FFBFBBBLRL
+BFBFBBBRLL
+FBBFBFBLRL
+FBFFFBBLRR
+BBFFBBBRRL
+BFBFFBFRRR
+BBBFFFBLRR
+FFBBBFFRRL
+FBBFFBFRRL
+BFFFBFFRLR
+FBFFBFFRLR
+FFFBFBBLLL
+FFBFBFFRRR
+BBFFBFFRRL
+FFFBFBFLRL
+BFFBBFFRRR
+FFBBBFFLRL
+FBFBFFBLLR
+FBFFBBFRRL
+BFFBBFFRLR
+BFFBFFBRLR
+BFFBFFFLRL
+FBFFFFFLRR
+FFFBBBBLRR
+BFBBFFBLLR
+BFBBFBBRLR
+BFFFFBFRLL
+BBFFFBFRLR
+FBFBFFFRRR
+FFFBBFFLRR
+FBBBBFBLLR
+FBBBBBFRLR
+FFBFBFBLLL
+FBFBBFFLLL
+BBFBBBBRLR
+BBFFBBFRRL
+BBFBBBFRLL
+BFBBFBFLRL
+BFBBBFFRLL
+FBFBFBBRRR
+FBBBBBBLLL
+BFBFFBBRRR
+FBBFFBBRRR
+BFFFFFBRRL
+FFBBFFFRRR
+FFBFFBBLLL
+BBBFFBFLRR
+BBFBBBBRRR
+FBFBFFFRLL
+FBBBFBFRRR
+FBBBBFFRRL
+BFFFFFFLRL
+FBBBBBFLRR
+BFFBBBFLRL
+BFBBFFFRLR
+FFBFFFFRLR
+FFBBBFFRLR
+BFBBFBBRRL
+FFBFBFFLLR
+BBBFFFFRLR
+BBFFFFFRLR
+FBBFFBBLLR
+BFBFFBFRRL
+BFFFBFFLRR
+FFBFBFBRLR
+BFFFBFFRRR
+BFFBBBBRRL
+FFBBBBBLLL
+BFFBBBFRLR
+FBFFFBFRLR
+FFBFBFFRLR
+BFBBBFBLLL
+FBFBBFBRRL
+BBFBFBBLRL
+BFBBFBFRLL
+BFBBBFFLLL
+FBBFBBBLLR
+FBFFFFBRRL
+FBBBBBBRRR
+FBFBBBBLRL
+FFFBFBBRRR
+FFBFBFFLRL
+FBFFBBFLLR
+FFBBFBBLRR
+BBFBFBBLLR
+FFFBFBFLRR
+BBBFFFBRRR
+FFBFFBBRRR
+FFBFFBBRRL
+FBBFFFFLRL
+FBFBBFFRRR
+BFBBFFFRLL
+FFFBBBFLLR
+FBBBBFBLLL
+BBFBBBBLRL
+BBFBFFBRRR
+BFFBBBBLRR
+FBBBBFBRRR
+BFBFBFFRRR
+BFFBBFBRLL
+FFBBBFBLLL
+BFBFFBFLRL
+BFFFBBFLRR
+FBBBBFBLRL
+FBBFBFFRRL
+FFFBBFFRLL
+FBFFFBBLRL
+FBBFFFBRLR
+FBBFBFBRRL
+FFBFFFFRRL
+FBFBBFFLLR
+FBFFBBFLLL
+FBBFBFBLLR
+BFFBBBFRRL
+FFBBFBBLLR
+BFBBFBFRRR
+BFFFFFFRLR
+FBBBFFFRLL
+FFBFFBFLRL
+FFBFFFFLRL
+BBBFFFBRLR
+BFFBFFBRLL
+BBBFFBFLRL
+FBBBFFBRRL
+BFBFBFBRRR
+FFFBBBFRLR
+BBFFBFBLLR
+BFBBBBFRLL
+BBFBFFBLLR
+FFBBFBBRRR
+FBBBFBBLRL
+BFBBBBFRRR
+BFBFBFBRLL
+BFBBFFFRRL
+FFBFBFFRLL
+FBBFBBFRLR
+BFFBFFFRLL
+BFBBBFBLRR
+BBFFFFFRRR
+FBFBBBBRLR
+FFBBFBFRLR
+FFBFFFFLLL
+FBBFFBFRRR
+FFBFFBFRLL
+FBBFFBBLRR
+FBBBFBFRLR
+BFBBBBFLRR
+FFBFBBBLLR
+BFFFBBFRRR
+FBBBFFBRLL
+FBFBBBFLRR
+BBFFBFFRLL
+FBFFFFBRLL
+FBFFBFBLRL
diff --git a/2020/day05/main.go b/2020/day05/main.go
@@ -0,0 +1,66 @@
+package main
+
+import (
+	"bufio"
+	"fmt"
+	"os"
+)
+
+func readInput(filename string) (res []string) {
+	file, _ := os.Open(filename)
+	defer file.Close()
+	scanner := bufio.NewScanner(file)
+	for scanner.Scan() {
+		res = append(res, scanner.Text())
+	}
+	return
+}
+
+func main() {
+	input := readInput("./input.txt")
+	// 919
+	fmt.Println(part1(input))
+	// 642
+	fmt.Println(part2(input))
+}
+
+func decodeSeat(line string) int {
+	var row, col int
+	for i := 0; i < 7; i++ {
+		row <<= 1
+		if line[i] == 'B' {
+			row += 1
+		}
+	}
+	for i := 7; i < 10; i++ {
+		col <<= 1
+		if line[i] == 'R' {
+			col += 1
+		}
+	}
+	return row*8 + col
+}
+
+func part1(input []string) (max_id int) {
+	for _, line := range input {
+		id := decodeSeat(line)
+		if id > max_id {
+			max_id = id
+		}
+	}
+	return
+}
+
+func part2(input []string) int {
+	listed_id := make(map[int]bool)
+	for _, line := range input {
+		listed_id[decodeSeat(line)] = true
+	}
+	max_id := part1(input)
+	for i := 0; i < max_id; i++ {
+		if !listed_id[i] && listed_id[i-1] && listed_id[i+1] {
+			return i
+		}
+	}
+	return 0
+}