1
0

Initial comit

This commit is contained in:
Rokas Puzonas 2020-12-10 15:09:10 +02:00
commit 55a9a21afd
32 changed files with 8294 additions and 0 deletions

200
1/input.txt Normal file
View File

@ -0,0 +1,200 @@
1844
1123
1490
1478
1108
1120
1594
1101
1831
1146
1084
1535
1016
1722
1388
1188
1351
1477
1215
1678
1159
1558
1581
1400
1550
1306
1852
1745
1224
1896
1596
1005
1499
1797
976
1777
1129
1601
1058
1510
1704
1818
1795
1364
1276
1362
1801
1985
1421
1311
1855
1977
1613
1951
2001
1327
1872
1517
1040
1692
1595
1769
1956
1763
1470
1898
1366
1443
312
1685
1014
1409
1717
1105
1290
1703
1732
1939
1790
1164
1225
1474
1713
1413
1906
1488
1931
1702
1848
1668
1737
1614
1719
1647
1171
1508
1035
1133
1179
1180
1472
1414
1659
1820
1544
1697
1175
1033
1805
1576
1196
1597
1739
1291
1103
1457
1514
1462
1619
1683
1338
1604
1372
1653
16
1725
1181
1952
1201
1531
1505
1912
1527
1853
1905
1833
1913
1131
1069
1537
1754
1551
1435
1914
1093
1273
1726
1094
1439
1689
1607
1646
1588
1698
1539
1493
1352
1163
1482
1044
1523
1142
1253
1250
1986
1049
1330
1219
1162
1088
1100
1532
1727
1761
1107
1916
1220
1319
1098
1431
1260
1642
1269
1102
1432
1267
1824
1658
1149
1024
1963
1498
1904
1812
1600
1773
1283
1463
1776
1406

10
1/part1.py Normal file
View File

@ -0,0 +1,10 @@
from itertools import combinations
expenseReports = []
with open("input.txt", "r") as f:
expenseReports = [int(line[:-1]) for line in f.readlines()]
for expensePair in combinations(expenseReports, 2):
if sum(expensePair) == 2020:
print(expensePair[0] * expensePair[1])
break

10
1/part2.py Normal file
View File

@ -0,0 +1,10 @@
from itertools import combinations
expenseReports = []
with open("input.txt", "r") as f:
expenseReports = [int(line[:-1]) for line in f.readlines()]
for expensePair in combinations(expenseReports, 3):
if sum(expensePair) == 2020:
print(expensePair[0] * expensePair[1] * expensePair[2])
break

100
10/input.txt Normal file
View File

@ -0,0 +1,100 @@
30
73
84
136
132
117
65
161
49
68
139
46
21
127
109
153
163
160
18
22
131
146
62
113
172
150
171
98
93
130
170
59
1
110
2
55
37
44
148
102
40
28
35
43
56
169
33
5
141
83
15
105
142
36
116
11
45
82
10
17
159
140
12
108
29
72
121
52
91
166
88
97
118
99
124
149
16
9
143
104
57
79
123
58
96
24
162
23
92
69
147
156
25
133
34
8
85
76
103
122

18
10/part1.py Normal file
View File

@ -0,0 +1,18 @@
adapters = []
with open("input.txt") as f:
adapters = list(int(num) for num in f.read().split("\n"))
adapters.append(0)
adapters.sort()
adapters.append(adapters[-1]+3)
numOf3Diff = 0
numOf1Diff = 0
print(adapters)
for i in range(0, len(adapters)-1):
diff = adapters[i+1] - adapters[i]
if diff == 1:
numOf1Diff += 1
elif diff == 3:
numOf3Diff += 1
print(numOf1Diff * numOf3Diff)

26
10/part2.py Normal file
View File

@ -0,0 +1,26 @@
adapters = []
with open("input.txt") as f:
adapters = list(int(num) for num in f.read().split("\n"))
adapters.append(0)
adapters.sort()
adapters.append(adapters[-1]+3)
memo = {}
memo[adapters[-1]] = 1
def getNumOfCombinations(adapterList):
if memo.get(adapterList[0]):
return memo[adapterList[0]]
combinations = 1
for i in range(1, len(adapterList)):
diff = adapterList[i] - adapterList[0]
if 0 < diff <= 3:
combinations += getNumOfCombinations(adapterList[i:])
else:
break
combinations = combinations - 1
memo[adapterList[0]] = combinations
return combinations
print(getNumOfCombinations(adapters))

1000
2/input.txt Normal file

File diff suppressed because it is too large Load Diff

13
2/part1.py Normal file
View File

@ -0,0 +1,13 @@
import re
passwords = ""
with open("input.txt", "r") as f:
passwords = "".join(f.readlines())
correctPasswords = 0
for letterMin, letterMax, letter, password in re.findall(r"(\d+)\-(\d+) (\w): (\w+)", passwords):
letterCount = password.count(letter)
if int(letterMin) <= letterCount <= int(letterMax):
correctPasswords += 1
print(correctPasswords)

14
2/part2.py Normal file
View File

@ -0,0 +1,14 @@
import re
passwords = ""
with open("input.txt", "r") as f:
passwords = "".join(f.readlines())
correctPasswords = 0
for pos1, pos2, targetLetter, password in re.findall(r"(\d+)\-(\d+) (\w): (\w+)", passwords):
letter1 = password[int(pos1) - 1]
letter2 = password[int(pos2) - 1]
if (letter1 == targetLetter and letter2 != targetLetter) or (letter1 != targetLetter and letter2 == targetLetter):
correctPasswords += 1
print(correctPasswords)

323
3/input.txt Normal file
View File

@ -0,0 +1,323 @@
...............#.#.............
##..#....................#...##
......#..#.#.....#..#.#.##.....
.........#...#..............#.#
............#.......##.........
...#.....#.....#...#.....#..#..
..............#..##.#..#......#
.##.....#.....#......##.#......
.#..........###....#...##....#.
.....#....#.#.......#......##..
.#....#......#.......#........#
..#.#.......#..##.....##.......
...#.#....#.......#.......#...#
##.##...##..#......#.#.....#..#
.#.#.......#..#.#......#...#.#.
#.......##.......#...#.........
.....#......#.#.#.....#....##..
.#.#........#....#..#..#.......
...#....#..###.........#.....#.
........#........#........#....
..##..............#.....#.#..#.
.#...##.............#.#........
....#..#...........#.......#...
..#....#.....................#.
#.#..................##......##
.#.##....#......#........#.....
.........##.....#....#...##..#.
#..........#..#.#.............#
.........#...#.#.#.#..##..##...
#...#.....#..#..#....#...#.....
..##.....#..................#..
#..###.....#....#.......#..#...
...##.##..#............#......#
........###.........###......#.
#..##....#.........#.........#.
....#.....................#....
#..#..##..#..####.##..#.....##.
..#...#.#....#....##.....#.....
...#.#.........#.....#.#.......
....#................#..#...##.
....#..#..........#...#.#.##...
........#..##............#....#
...#......##..........#.##...#.
.......##......................
.......##..........#....#.#...#
......###.##..##..#....#...#..#
#.#...........##.....#........#
..#...........#..###....#.#.#..
........#...........#......##..
.........#...##.###...###..#...
.....#.....#..##.........##....
...##..............#.....#...##
.##....#.......###.....#.......
.#...........##.............##.
......#..#..##.##......#......#
........###........#......#.#..
#.#....#.....#........#......#.
.##..#.........##...##....#....
.....#.........#...##.....#....
.............#........###....#.
......#.......#.#........#.#...
..#....#.#...#....#...#.#...##.
#...#......##..##......#.##.###
...##.#....#...#....#.........#
...#..####.....##.#..#.#...##..
##.#..#....##......#......##...
###.........#.#..#.#.....#.....
...#........#..##...#.#.#..#.#.
...###..#.###.#...#............
....................###........
...........#...........#.......
#..............#.#.........###.
....................##.....#..#
#.#.....#.......#...#..........
.#...#......#....##...#...#....
.....#.##..................###.
.........#.#..#.#......#.......
.......#.....##..#.##.#........
..#..........#.###.....#....#..
......#.............#.#........
........##....#........#.......
...#.............#....#.#......
#........#..####.....#.....#.#.
.##......##...#........#..#.#..
....##....#...#...#..##...#.#..
#.##...###..#....##.#..........
....#.#...#.#...#..##.###...#..
#.....##..#..#....#.#.....##...
.#..#..........##.#.....##.....
.#..#........#.#.#.#...........
.#..#.....#...........#...#....
...#......##..........##..#....
...#..#....#.##...#..#.....###.
#.#....#.....##................
#..#......#.#.#.......#........
......#....#.#....#..##....#..#
.#.....#.#....###.##.........#.
.###..#.....#........#.#.......
.#...#......#..#.#......#.....#
#...............####...#.....#.
.......#..........##.#........#
#........##....##.....###..##..
#..#.....#..##.....#....#..#...
#.....#.......##......#.#.....#
#.##..#......##..#.............
##...#.....#........##.........
....#..##....#...#.......#.#...
....#...#...##..#....#..#...#..
..............#.#...#....###...
...#....#..##...##..#....##....
#.##.#..#..#......#.#.#.#...#..
.......#..#..##........#......#
##.#....#....##.#......##.#....
.#...#..............#........#.
.#.#....#.........#............
.#..#..###.............#....#..
#......#...#.#..##..#...#....#.
.......................#...#.#.
.............#..#...##.........
..#.#..#....#....#........#....
#......#.##..#...#.#...........
.....#....#...........##.#..#..
..#.#.....#..............#.#...
#.......#.....#................
#..............#...#....#...#..
...#...##..#..#............#...
......###.....................#
.........#.......##..#....#....
........#...#.##..#.##......#..
....###..#.#...#...#..#.#...###
##...#...##.#...#.#...#.#....#.
.........#...#.....###.........
...#........##..#.......##.....
.#.......##.........#.....##..#
.#..................#...#......
.##..#..#.#.....#.###..........
...#.....##..#.........#...#...
.#......#.#.......#.#..........
.........#.#...#..........#.#..
#..........#.##..#.##....#.....
.#.#....#.....#..##.....#...#..
..#........##...##..#..#....#..
#...........##....#..###....#..
...........##.........####...#.
..#........###...#.#.........#.
.#...............#.##.#.#...#..
.#.##..#.....#.#.....##..#.....
...#...#..#.##.##...#.......##.
..#...#...#......##.##.##...#..
##....#...#...#...............#
...##...........#......#..#.#..
#.........#......#.#.##.....#..
........#..#.........##........
..#.#....###.....##..#...#.....
.........#...#.......#.....##..
##.....................#...##..
.#.#..#......#.................
.....###..#......#..###..#.....
...#.....##.........#......#..#
......##.....#...#........#.#..
..#.#...#......#...#.##.##.....
...#..........#...#.......#..##
.###........#........##........
..#.#.#..........#.#...##......
.........#........#......###..#
....##..#.........#...........#
..####..#............##.......#
.....##.#..##.........#...#.#..
...#.........#.....#.....#.....
.......#...#..#...##.........#.
...#...#..#...#....#..#........
#............##.##...#.........
.#.#.....#.......####.....#....
..............#......#.#.......
..............#...........#...#
#...#........###....#.#....#.#.
##.#..#..#......#......#.#.#...
.#..#.....#..#.#..#.#.......##.
......##.#...#...#......#...#..
#...........##....#.#..........
....#.......###.#...#..........
.......................#.....#.
........#...#..#...#.#.#.#.#...
.#.#...........#......##...#...
.........................#.....
.................#.##.#...##...
...#...##.....#.....##....#.#..
...#...#...................#...
...#..#..#...#...#....#........
#....#...#.....#...............
.......#...........#...#.......
....#....#.....##.......#......
.......#..........##...........
.#.#........#..##....#......#..
.....#.......#.#.........#...#.
.#..####.#.#...............#..#
.....###..#..#..........#.#..##
..#.......#...#.....##..#..#.#.
#....#......#..................
........#.##.#....#...........#
....#.#....##..#.#.....##......
...#..#.......#....#.....#.#.#.
#...#......#.....#.#..........#
....#....#...............#.....
..###......................###.
.##....#..#.......###.....#..#.
..###............#........#.##.
.#........#......#.....#..#....
....#..##...#...#.###.......#.#
.......#.##...........#.#..#...
.....#...##....................
....#....#...##......#.........
..#............##....###.#...#.
.#........#...............#....
#..#.#.##.........#..##....##..
#.#....#..#.##....##...#.#.....
.....#.....##....#.#........#..
#..#...#...#....#....#.........
...#........#..#.#.....##......
..#...#...#................##..
#........#.#.##.......#.#...#..
#......#..####.##.....#.#..#.#.
............#..#.#....#......##
..#.....##....#...#.#..........
...#...#.........#...#.#.......
.###..#.......##.##.....#.#.#..
...#....#...............##.#...
....##..#..#..#.#......##.....#
#.#..............##...##...####
.....#.##...#.#...............#
.##.....#.........#.......#.#.#
#.#..#.....#.......#.......#..#
...#.#.....#.....#......#......
.......#....#..#.#..........#..
......#......#.##...#..........
.....#.......###...#...#.#.....
#..#.#.........#.....#.##....#.
..#.#.........#..#..#..#.....#.
.#..##..#..#....#......#.##..#.
...##......###.....#.##.##.....
.#.....#...#..#...#............
##..##..#.##....#..#...........
...#..##..#..#.............#.##
...............##............#.
..#.....##........##.#...#....#
.#.#...#.#.#..#.#.....#....#...
.#....#...............#..#.....
....#.##..#....#......#...###..
#................###...#.#.....
...#...#......##..#.#....#.....
.#....#....#.#...##............
....#...##..#..#........#.##...
..##.....#..#..##..............
..#..##..#.#..##....#....#....#
...##.............#............
#....#....#.#........#.....##.#
.....#..#.#.....####...###.....
................#......#.......
.....#.#.#.#.#....#..#........#
.##.#...#.#.......##....#....#.
.....#........#................
..#.....#..#...#..#...........#
.#.....#...##.....##..#.#....##
......#.......#..#......##.#...
#.#..........#.##.#........#...
...#..#.............#..........
#..#..#..........#..##.#.......
.#..#...............####..#....
.......#.....#......#.....#.#..
.#...............#...#.........
.#..#..........#..#.#..##..#..#
......##..#.....#..#......###..
..........#...#..#.......#.....
.#.#.#..#.....#.##.#...#..#....
........#.......#.....#.#......
......#.....##.....#....##.#...
...............#......#.......#
..#.#...#.....#.#...##......#..
#.#.........#.#...#........####
#..........##..#..#........##..
.............#..#.......##.#..#
..#........#.#....#........#.#.
.#......####..#..#.............
............###.......#.#..#...
#.##......##...#...#.........#.
....##.#.#.#......#....#..#...#
.#..#.#....#...#.........#.....
#...#.....##............#...#..
#.#...#..#.................#...
............#.#..#.....#.#.#..#
...................#....#.##...
.....#...#.#....#....#.#......#
.......##.#.#......##..........
.#..#...##.#...#..#......#.....
......#.#..#..###..##..##......
.#.#.#.#.....#...###.....#..#..
.#....#.....#.......#.......#..
..........##.........####......
.#.#.............#..#.#...#....
........#........##...#.#....#.
........#......................
..#.#....#...............#...##
.......#.#...#..#.....##......#
.#...#....#..........##........
.#.........#.#............##...
.....#......##...#.......#..#..
#.#..#.............#...#...#...
......#.......#............#...
...........##....#......##.....
.#.#..#.....................#..
##..##.....###..##.#...........
...##......##....#...##.....#..
#...#.##.............#.........
......#..#.........###.#......#
#.#.....#.....................#
....#####.....##........#.#..#.
...........##..##.###..........
..........##.....#........#...#
.......#..#......#.....##..##.#
.....##.#........#.........#...
......##......................#
.#.......#.#.#............#..#.
.....##.#.......#.#........#...

16
3/part1.py Normal file
View File

@ -0,0 +1,16 @@
trees = []
with open("input.txt", "r") as f:
trees = [line[:-1] for line in f.readlines()]
encounteredTrees = 0
maxRows = len(trees)
maxCols = len(trees[0])
x = 0
for y in range(1, maxRows):
x = (x + 3) % maxCols
if (trees[y][x] == "#"):
encounteredTrees += 1
print(encounteredTrees)

26
3/part2.py Normal file
View File

@ -0,0 +1,26 @@
trees = []
with open("input.txt", "r") as f:
trees = [line[:-1] for line in f.readlines()]
encounteredTrees = 0
maxRows = len(trees)
maxCols = len(trees[0])
def getEncuonteredTrees(right, down):
encounteredTrees = 0
x = 0
for y in range(down, maxRows, down):
x = (x + right) % maxCols
if (trees[y][x] == "#"):
encounteredTrees += 1
return encounteredTrees
print(
getEncuonteredTrees(1, 1) *
getEncuonteredTrees(3, 1) *
getEncuonteredTrees(5, 1) *
getEncuonteredTrees(7, 1) *
getEncuonteredTrees(1, 2)
)

1
4/aggregate.txt Normal file

File diff suppressed because one or more lines are too long

1104
4/input.txt Normal file

File diff suppressed because it is too large Load Diff

20
4/part1.py Normal file
View File

@ -0,0 +1,20 @@
import re
documents = []
with open("input.txt", "r") as f:
documents = f.read()
requiredFields = ["byr", "iyr", "eyr", "hgt", "hcl", "ecl", "pid"]
numOfValidDocuments = 0
for document in documents.split("\n\n"):
fields = re.findall(r"(\w+):[^\s]+", document)
hasAllRequiredFields = True
for requiredField in requiredFields:
if requiredField not in fields:
hasAllRequiredFields = False
break
if hasAllRequiredFields:
numOfValidDocuments += 1
print(numOfValidDocuments)

33
4/part2.py Normal file
View File

@ -0,0 +1,33 @@
import re
documents = []
with open("input.txt", "r") as f:
documents = f.read()
requiredFields = {
"byr": re.compile(r"^(19[2-9][0-9]|200[0-2])$"),
"iyr": re.compile(r"^(20[1-2][0-9])$"),
"eyr": re.compile(r"^(202[0-9]|2030)$"),
"hgt": re.compile(r"^(1([5-8][0-9]|9[0-3])cm)|((59|6[0-9]|7[0-6])in)$"),
"hcl": re.compile(r"^#[0-9a-f]{6}$"),
"ecl": re.compile(r"^(amb|blu|brn|gry|grn|hzl|oth)$"),
"pid": re.compile(r"^[0-9]{9}$")
}
numOfValidDocuments = 0
for document in documents.split("\n\n"):
fields = re.findall(r"(\w+):([^\s]+)", document)
fieldsTable = {}
for field in fields:
fieldsTable[field[0]] = field[1]
hasAllRequiredFields = True
for fieldName, fieldRegex in requiredFields.items():
value = fieldsTable.get(fieldName)
if value == None or not fieldRegex.match(value):
hasAllRequiredFields = False
break
if hasAllRequiredFields:
numOfValidDocuments += 1
print(numOfValidDocuments)

789
5/input.txt Normal file
View File

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

22
5/part1.py Normal file
View File

@ -0,0 +1,22 @@
boardingPasses = []
with open("input.txt", "r") as f:
boardingPasses = f.read().split("\n")
def decodePass(encoded):
row = 0
row += 64*(encoded[0] == "B")
row += 32*(encoded[1] == "B")
row += 16*(encoded[2] == "B")
row += 8 *(encoded[3] == "B")
row += 4 *(encoded[4] == "B")
row += 2 *(encoded[5] == "B")
row += 1 *(encoded[6] == "B")
column = 0
column += 4*(encoded[7] == "R")
column += 2*(encoded[8] == "R")
column += 1*(encoded[9] == "R")
return row * 8 + column
maxBoardingPass = max(decodePass(boardingPass) for boardingPass in boardingPasses)
print(maxBoardingPass)

26
5/part2.py Normal file
View File

@ -0,0 +1,26 @@
boardingPasses = []
with open("input.txt", "r") as f:
boardingPasses = f.read().split("\n")
def decodePass(encoded):
row = 0
row += 64*(encoded[0] == "B")
row += 32*(encoded[1] == "B")
row += 16*(encoded[2] == "B")
row += 8 *(encoded[3] == "B")
row += 4 *(encoded[4] == "B")
row += 2 *(encoded[5] == "B")
row += 1 *(encoded[6] == "B")
column = 0
column += 4*(encoded[7] == "R")
column += 2*(encoded[8] == "R")
column += 1*(encoded[9] == "R")
return row * 8 + column
allIDs = list(decodePass(boardingPass) for boardingPass in boardingPasses)
for i in range(0, 1024):
if ((i-1) in allIDs) and ((i+1) in allIDs) and (i not in allIDs):
print(i)
break

2131
6/input.txt Normal file

File diff suppressed because it is too large Load Diff

12
6/part1.py Normal file
View File

@ -0,0 +1,12 @@
answers = []
with open("input.txt", "r") as f:
answers = f.read().split("\n\n")
possibleAnswers = "qwertyuiopasdfghjklzxcvbnm"
totalGroupYesCount = 0
for answer in answers:
for possibleAnswer in possibleAnswers:
totalGroupYesCount += answer.find(possibleAnswer) > -1
print(totalGroupYesCount)

12
6/part2.py Normal file
View File

@ -0,0 +1,12 @@
answerGroups = []
with open("input.txt", "r") as f:
answerGroups = [answerGroup.split("\n") for answerGroup in f.read().split("\n\n")]
possibleAnswers = "qwertyuiopasdfghjklzxcvbnm"
totalGroupYesCount = 0
for answerGroup in answerGroups:
for possibleAnswer in possibleAnswers:
totalGroupYesCount += all(answer.find(possibleAnswer) > -1 for answer in answerGroup)
print(totalGroupYesCount)

594
7/input.txt Normal file
View File

@ -0,0 +1,594 @@
pale chartreuse bags contain 3 faded orange bags.
drab gold bags contain 5 dark aqua bags.
mirrored magenta bags contain 3 dotted violet bags.
posh black bags contain 3 dark lavender bags, 3 mirrored coral bags, 1 dotted chartreuse bag.
striped yellow bags contain 5 pale red bags, 2 light lime bags, 5 clear indigo bags.
bright aqua bags contain 2 vibrant orange bags, 4 clear lavender bags, 1 pale gray bag.
dim silver bags contain 2 bright blue bags, 3 faded olive bags, 1 faded cyan bag.
light beige bags contain 2 bright silver bags, 4 vibrant crimson bags.
dull cyan bags contain 2 drab beige bags, 3 mirrored turquoise bags, 2 mirrored indigo bags.
dark black bags contain 5 dull turquoise bags, 4 faded cyan bags, 4 plaid coral bags.
dotted bronze bags contain 3 light blue bags, 2 dull teal bags, 3 dull chartreuse bags, 1 plaid green bag.
light purple bags contain 3 clear tan bags, 3 dull tan bags.
wavy orange bags contain 3 wavy tan bags, 3 faded green bags, 1 shiny brown bag, 2 dim tan bags.
drab beige bags contain 1 vibrant tan bag, 3 pale chartreuse bags, 3 plaid indigo bags, 2 mirrored chartreuse bags.
light coral bags contain 4 faded green bags, 1 pale crimson bag, 3 light bronze bags, 4 posh blue bags.
wavy coral bags contain 5 vibrant cyan bags, 5 light blue bags, 1 dotted turquoise bag.
dotted plum bags contain 1 clear orange bag, 2 drab black bags, 5 dull chartreuse bags, 5 plaid fuchsia bags.
striped olive bags contain 4 clear brown bags, 2 shiny beige bags.
vibrant maroon bags contain 2 dotted beige bags, 4 plaid olive bags, 5 dull black bags, 5 mirrored aqua bags.
drab purple bags contain 2 light green bags, 1 clear orange bag.
shiny violet bags contain 5 drab white bags, 5 dark aqua bags, 3 muted gray bags, 4 wavy orange bags.
muted maroon bags contain 2 plaid red bags, 3 bright silver bags, 5 posh yellow bags, 1 bright yellow bag.
clear black bags contain 1 bright plum bag, 1 faded brown bag, 4 wavy chartreuse bags.
dotted maroon bags contain 5 mirrored turquoise bags.
drab silver bags contain 2 vibrant violet bags, 2 muted orange bags, 4 dull purple bags.
faded purple bags contain 1 bright lime bag, 2 striped brown bags, 5 dull maroon bags, 2 shiny olive bags.
dull maroon bags contain 1 clear lime bag.
pale salmon bags contain 5 striped blue bags, 5 posh blue bags.
plaid orange bags contain 1 pale coral bag, 3 shiny orange bags.
drab black bags contain 5 vibrant orange bags, 1 dotted tomato bag, 2 dim red bags, 3 muted blue bags.
dotted teal bags contain 3 light fuchsia bags, 5 vibrant tan bags.
plaid tan bags contain 5 dark brown bags.
shiny coral bags contain 2 pale green bags, 1 muted lavender bag.
plaid plum bags contain 5 drab lavender bags, 2 shiny teal bags, 1 plaid tan bag.
dim olive bags contain 1 dark beige bag, 1 drab coral bag, 5 muted chartreuse bags, 4 bright teal bags.
dim bronze bags contain 1 striped turquoise bag, 4 muted turquoise bags.
muted red bags contain 5 dark gray bags, 4 muted gray bags, 5 muted blue bags.
shiny crimson bags contain 2 dark aqua bags, 4 faded fuchsia bags, 3 faded tomato bags.
vibrant teal bags contain 1 dark cyan bag, 4 wavy lime bags, 1 bright crimson bag.
dark yellow bags contain 2 striped coral bags, 1 drab tomato bag.
posh orange bags contain 3 wavy lime bags, 3 clear lavender bags, 5 bright indigo bags.
shiny orange bags contain 3 striped gold bags.
wavy magenta bags contain 2 vibrant crimson bags, 3 mirrored teal bags, 1 shiny lime bag.
clear indigo bags contain 2 pale green bags.
wavy red bags contain 5 plaid indigo bags.
wavy crimson bags contain 2 dim teal bags.
clear chartreuse bags contain 2 dull gray bags, 4 plaid lime bags, 3 striped cyan bags.
muted beige bags contain 2 drab white bags.
dim plum bags contain 3 vibrant green bags, 1 clear red bag.
dotted white bags contain 5 wavy magenta bags.
shiny chartreuse bags contain 2 striped tan bags, 2 dim maroon bags, 5 plaid bronze bags, 4 dark white bags.
pale green bags contain 5 drab crimson bags, 3 dull teal bags, 4 plaid red bags.
clear purple bags contain 3 light indigo bags.
striped brown bags contain 1 light yellow bag.
bright plum bags contain 4 faded olive bags, 2 dotted crimson bags, 3 pale green bags, 1 light yellow bag.
posh crimson bags contain 3 bright aqua bags.
dotted olive bags contain 4 striped tomato bags, 4 faded chartreuse bags, 2 dull bronze bags, 2 shiny olive bags.
striped magenta bags contain 2 posh indigo bags, 3 dotted tomato bags.
vibrant chartreuse bags contain 5 light crimson bags, 5 light bronze bags.
light cyan bags contain 1 faded red bag, 1 light silver bag.
faded teal bags contain 5 vibrant crimson bags, 3 drab gray bags, 5 striped turquoise bags, 1 pale plum bag.
mirrored aqua bags contain 1 vibrant white bag.
dull violet bags contain 2 dull orange bags, 1 light green bag.
clear orange bags contain 5 dark green bags.
muted silver bags contain 4 striped indigo bags, 3 mirrored lime bags, 1 bright lavender bag.
posh green bags contain 4 drab gold bags, 4 dim black bags, 4 faded gold bags.
dark bronze bags contain 1 faded plum bag, 5 mirrored teal bags, 5 striped indigo bags, 4 muted salmon bags.
shiny teal bags contain 4 plaid tomato bags, 3 clear brown bags, 4 dull silver bags, 2 wavy orange bags.
light gold bags contain 4 pale tan bags, 3 vibrant gray bags, 5 wavy tan bags, 5 dark violet bags.
bright indigo bags contain 5 shiny silver bags, 4 wavy indigo bags, 5 dark gold bags.
bright gray bags contain 5 shiny lime bags, 4 dull aqua bags.
dotted orange bags contain 1 dim red bag, 4 striped blue bags, 3 bright lavender bags.
dark indigo bags contain 4 drab indigo bags, 1 dotted turquoise bag.
pale lavender bags contain 2 vibrant green bags, 4 dim yellow bags, 1 mirrored yellow bag, 1 bright blue bag.
dotted silver bags contain 2 posh blue bags, 3 posh maroon bags.
plaid salmon bags contain 4 light yellow bags.
plaid magenta bags contain 3 striped gold bags, 2 mirrored black bags, 3 dull tan bags.
wavy blue bags contain 3 faded teal bags, 4 drab blue bags, 1 dotted gold bag.
muted black bags contain 1 drab teal bag, 3 muted lime bags.
clear violet bags contain 3 bright lavender bags, 1 vibrant plum bag, 3 wavy white bags, 1 shiny chartreuse bag.
bright teal bags contain 1 muted chartreuse bag, 4 dull indigo bags, 5 striped tomato bags, 1 drab white bag.
drab lime bags contain 3 posh maroon bags.
shiny tan bags contain 3 faded chartreuse bags, 3 wavy orange bags, 4 drab white bags, 4 light chartreuse bags.
light green bags contain 4 dotted tan bags, 1 dim salmon bag.
pale tan bags contain 3 posh green bags.
light gray bags contain 3 posh brown bags, 3 dim green bags, 3 mirrored tan bags, 1 mirrored yellow bag.
clear gray bags contain 4 dim brown bags.
drab magenta bags contain 4 dark aqua bags, 5 faded tomato bags.
pale violet bags contain 2 bright violet bags, 1 bright indigo bag, 2 muted salmon bags.
vibrant black bags contain 1 bright magenta bag, 4 vibrant crimson bags, 4 clear blue bags, 2 light chartreuse bags.
striped white bags contain 3 plaid yellow bags, 3 muted orange bags, 1 shiny gold bag, 5 light white bags.
wavy turquoise bags contain 5 wavy tan bags, 4 posh chartreuse bags, 5 posh red bags, 3 muted purple bags.
light white bags contain 3 shiny brown bags, 1 striped tan bag, 2 bright lime bags, 5 shiny yellow bags.
faded orange bags contain 3 dim silver bags, 5 wavy tomato bags, 4 wavy chartreuse bags, 1 shiny black bag.
mirrored fuchsia bags contain 2 plaid lime bags, 3 vibrant salmon bags.
dull aqua bags contain 5 clear brown bags, 3 dull indigo bags, 3 dull green bags, 2 muted gold bags.
dim gray bags contain 5 dark bronze bags, 4 dark silver bags, 3 wavy cyan bags.
dull tomato bags contain 4 drab tan bags, 3 striped brown bags.
dim gold bags contain 3 shiny tomato bags, 2 dim tomato bags.
striped beige bags contain 3 shiny violet bags, 3 striped aqua bags, 3 muted blue bags, 3 shiny gold bags.
mirrored coral bags contain 2 muted coral bags, 3 shiny teal bags.
vibrant white bags contain 1 clear brown bag, 3 drab gold bags, 2 wavy crimson bags, 5 light plum bags.
posh tan bags contain 3 dim salmon bags, 1 faded gold bag, 1 drab gray bag, 4 shiny coral bags.
drab tan bags contain 4 bright magenta bags, 3 dull green bags, 1 drab crimson bag, 4 dark green bags.
striped coral bags contain 2 drab tan bags, 4 wavy purple bags.
dark white bags contain 1 bright magenta bag.
striped red bags contain 3 plaid black bags.
drab coral bags contain 4 dotted violet bags, 2 pale magenta bags, 5 posh purple bags, 4 light lime bags.
pale yellow bags contain 5 plaid black bags, 3 shiny olive bags, 3 clear brown bags.
faded coral bags contain 2 pale salmon bags, 5 dim teal bags, 3 vibrant crimson bags.
faded black bags contain 2 wavy white bags, 5 faded brown bags, 4 drab beige bags.
dim salmon bags contain 4 vibrant white bags, 3 wavy salmon bags, 2 wavy lime bags, 2 bright purple bags.
dim black bags contain 3 dull tan bags, 2 striped beige bags, 2 plaid brown bags.
plaid cyan bags contain 2 muted coral bags, 3 dim red bags.
dotted gold bags contain 3 dotted orange bags, 3 striped coral bags, 1 clear magenta bag, 1 dotted crimson bag.
mirrored white bags contain 4 clear brown bags, 2 drab crimson bags, 4 shiny gold bags, 2 posh red bags.
vibrant olive bags contain 4 striped indigo bags, 5 dim salmon bags, 5 bright magenta bags.
dim teal bags contain 5 striped blue bags, 4 dull aqua bags, 5 dark cyan bags, 2 wavy magenta bags.
faded chartreuse bags contain no other bags.
clear yellow bags contain 5 wavy olive bags, 1 drab tomato bag, 2 plaid red bags.
mirrored bronze bags contain 1 vibrant beige bag, 5 clear cyan bags, 3 muted aqua bags, 5 striped turquoise bags.
vibrant tan bags contain 2 dull tomato bags, 5 dark aqua bags, 3 muted gray bags.
light olive bags contain 4 dark white bags, 2 dim teal bags.
light lavender bags contain 5 wavy indigo bags, 3 posh olive bags, 4 striped brown bags.
dotted gray bags contain 1 dim red bag, 5 light tomato bags, 2 dull gray bags, 4 light black bags.
plaid olive bags contain 5 wavy purple bags, 2 posh blue bags, 3 faded purple bags, 1 pale fuchsia bag.
muted salmon bags contain 5 shiny tan bags.
dark olive bags contain 4 mirrored black bags.
striped turquoise bags contain 4 pale olive bags, 2 pale tomato bags, 3 bright yellow bags.
plaid fuchsia bags contain 4 clear silver bags.
vibrant magenta bags contain 1 vibrant green bag, 2 muted silver bags, 4 light plum bags, 5 pale teal bags.
vibrant bronze bags contain 2 dull gold bags, 2 bright coral bags.
mirrored purple bags contain 1 drab tomato bag, 3 faded silver bags.
light lime bags contain 5 shiny violet bags, 4 wavy aqua bags.
pale gold bags contain 3 vibrant brown bags, 5 dim red bags.
dim orange bags contain 4 dark cyan bags, 3 light chartreuse bags, 3 wavy orange bags, 5 dark green bags.
clear fuchsia bags contain 4 posh blue bags, 4 mirrored lavender bags.
pale bronze bags contain 3 pale silver bags, 2 dotted tomato bags, 4 plaid gold bags.
dotted aqua bags contain 3 drab magenta bags, 3 dull green bags.
posh silver bags contain 5 striped lavender bags, 1 dotted maroon bag.
dim coral bags contain 1 wavy bronze bag, 5 striped gray bags, 2 light indigo bags, 2 dim orange bags.
bright green bags contain 5 drab plum bags.
striped teal bags contain 1 light fuchsia bag, 5 vibrant aqua bags, 3 mirrored white bags.
dim crimson bags contain 5 posh gray bags.
drab salmon bags contain 3 bright olive bags, 5 dim tan bags.
muted green bags contain 2 dark beige bags, 4 posh coral bags.
light tan bags contain 5 wavy white bags, 3 dim indigo bags, 3 bright green bags, 5 clear lavender bags.
posh teal bags contain 4 pale salmon bags.
muted cyan bags contain 4 posh yellow bags.
bright turquoise bags contain 3 posh indigo bags, 2 mirrored salmon bags, 2 dim magenta bags.
vibrant salmon bags contain 5 light tomato bags.
dark violet bags contain 3 light bronze bags, 5 dark gold bags, 1 striped magenta bag, 4 faded lavender bags.
faded maroon bags contain 5 plaid teal bags, 5 light turquoise bags, 5 posh white bags, 4 drab orange bags.
dotted magenta bags contain 4 shiny chartreuse bags, 5 drab turquoise bags, 4 bright tomato bags, 2 striped maroon bags.
dotted beige bags contain 5 clear white bags.
bright magenta bags contain no other bags.
dull red bags contain 2 muted lavender bags.
drab green bags contain 2 dotted cyan bags, 4 striped white bags, 3 muted magenta bags.
posh brown bags contain 5 muted lavender bags, 2 posh red bags, 5 drab magenta bags.
faded tan bags contain 3 bright purple bags, 5 plaid tomato bags, 3 dull teal bags.
faded brown bags contain 2 light silver bags, 5 mirrored tan bags, 2 clear tan bags, 2 drab gold bags.
striped black bags contain 3 vibrant yellow bags, 3 dull blue bags, 1 dull aqua bag, 5 dull teal bags.
faded white bags contain 1 muted maroon bag, 1 dark gray bag, 5 dark white bags.
drab aqua bags contain 3 muted white bags, 4 dark cyan bags, 5 pale tomato bags.
dull teal bags contain 2 plaid red bags, 5 mirrored teal bags.
vibrant plum bags contain 2 dim salmon bags, 3 light purple bags, 2 muted gray bags.
plaid crimson bags contain 5 shiny blue bags, 1 dull bronze bag.
wavy violet bags contain 3 dotted tomato bags, 3 striped brown bags.
clear cyan bags contain 1 drab crimson bag, 2 shiny lime bags.
shiny green bags contain 5 muted gray bags.
posh purple bags contain 2 vibrant white bags.
plaid lime bags contain 2 clear crimson bags, 3 bright magenta bags, 5 shiny silver bags, 1 posh blue bag.
dotted violet bags contain 1 dark teal bag, 5 faded crimson bags.
pale maroon bags contain 5 mirrored lime bags, 5 clear olive bags, 5 shiny orange bags, 4 mirrored fuchsia bags.
wavy indigo bags contain 5 plaid lime bags, 5 plaid fuchsia bags, 2 faded chartreuse bags, 4 dotted tomato bags.
faded silver bags contain 5 striped lavender bags, 4 muted lavender bags, 5 plaid brown bags.
drab violet bags contain 1 posh white bag.
bright white bags contain 3 light cyan bags, 1 dark indigo bag, 2 pale turquoise bags, 1 pale brown bag.
faded olive bags contain 2 clear lime bags, 4 muted chartreuse bags.
muted violet bags contain 1 clear lavender bag, 1 dark green bag, 3 dark cyan bags.
shiny gray bags contain 2 dull tan bags, 1 shiny olive bag.
plaid blue bags contain 3 dark aqua bags, 4 muted silver bags, 5 pale beige bags, 1 drab chartreuse bag.
posh fuchsia bags contain 5 posh red bags, 2 muted gray bags.
faded blue bags contain 1 plaid fuchsia bag, 1 mirrored turquoise bag, 2 plaid indigo bags, 1 dark aqua bag.
bright brown bags contain 4 drab violet bags, 5 shiny lime bags, 2 bright beige bags.
mirrored teal bags contain 5 dark gray bags.
bright violet bags contain 2 dotted crimson bags, 3 striped coral bags, 5 shiny maroon bags, 3 dull lavender bags.
striped plum bags contain 2 dim orange bags, 4 clear blue bags, 3 shiny violet bags.
plaid green bags contain 2 bright teal bags, 5 striped lime bags.
muted fuchsia bags contain 4 clear gold bags, 2 vibrant plum bags, 5 bright black bags.
bright purple bags contain 3 vibrant crimson bags, 1 dotted maroon bag, 4 dark gold bags.
faded cyan bags contain 4 dim teal bags.
wavy fuchsia bags contain 5 dull yellow bags, 2 light yellow bags, 5 bright black bags.
wavy salmon bags contain 1 shiny black bag, 3 bright teal bags, 5 clear yellow bags, 1 dull maroon bag.
dark fuchsia bags contain 1 muted violet bag, 3 light cyan bags.
clear salmon bags contain 4 light beige bags, 4 vibrant green bags, 3 pale yellow bags, 1 muted turquoise bag.
pale purple bags contain 1 bright blue bag, 5 pale bronze bags.
posh salmon bags contain 3 faded cyan bags, 4 posh maroon bags, 1 plaid green bag, 2 shiny silver bags.
bright blue bags contain 3 vibrant green bags, 2 drab gray bags.
shiny brown bags contain no other bags.
dark gold bags contain 5 vibrant aqua bags, 2 posh yellow bags.
mirrored violet bags contain 2 pale silver bags, 1 posh fuchsia bag.
bright fuchsia bags contain 3 muted brown bags, 3 plaid purple bags, 2 faded coral bags, 3 mirrored turquoise bags.
dim beige bags contain 2 dull lime bags, 3 dim gold bags, 3 plaid fuchsia bags, 1 posh yellow bag.
shiny white bags contain 1 pale fuchsia bag, 3 shiny beige bags, 3 posh aqua bags, 5 clear tan bags.
posh red bags contain 3 bright magenta bags, 2 dark aqua bags, 4 dark cyan bags.
vibrant fuchsia bags contain 3 striped indigo bags.
faded tomato bags contain 3 wavy olive bags, 5 shiny brown bags, 5 shiny tan bags.
dull purple bags contain 4 plaid teal bags, 4 dull indigo bags, 3 dull bronze bags, 4 faded tan bags.
shiny magenta bags contain 4 pale tomato bags, 4 shiny brown bags.
wavy tan bags contain no other bags.
dull salmon bags contain 3 faded crimson bags, 5 shiny fuchsia bags, 4 dotted silver bags.
pale magenta bags contain 2 faded chartreuse bags.
vibrant purple bags contain 3 muted orange bags, 5 dotted brown bags.
shiny turquoise bags contain 4 dotted turquoise bags, 1 dotted purple bag, 4 dim black bags.
shiny black bags contain 2 clear brown bags, 4 vibrant yellow bags, 1 vibrant aqua bag, 5 mirrored teal bags.
shiny cyan bags contain 3 dotted coral bags.
dim magenta bags contain 3 bright purple bags, 2 wavy white bags, 2 shiny fuchsia bags, 2 shiny yellow bags.
pale beige bags contain 3 dim orange bags, 5 wavy purple bags.
wavy bronze bags contain 5 posh yellow bags, 1 pale green bag, 5 dark cyan bags.
dull blue bags contain 4 wavy tan bags.
striped lime bags contain 5 striped crimson bags, 1 bright plum bag, 5 plaid yellow bags.
faded magenta bags contain 1 plaid green bag, 2 vibrant silver bags, 1 dim turquoise bag.
muted white bags contain 5 bright lime bags, 4 light fuchsia bags, 4 light violet bags, 4 dark aqua bags.
pale fuchsia bags contain 1 striped tomato bag, 1 drab crimson bag, 4 shiny yellow bags.
posh cyan bags contain 5 dark maroon bags.
dim indigo bags contain 3 dark gold bags, 5 bright maroon bags.
faded fuchsia bags contain 4 plaid tomato bags, 2 mirrored red bags.
shiny red bags contain 5 dull olive bags, 1 posh tan bag, 4 bright green bags.
posh maroon bags contain 4 clear blue bags, 5 muted chartreuse bags.
shiny indigo bags contain 4 wavy orange bags.
dim violet bags contain 1 dotted chartreuse bag, 2 mirrored lime bags, 1 drab chartreuse bag.
dim lime bags contain 4 posh fuchsia bags, 5 dull blue bags, 2 dull silver bags, 2 bright lime bags.
muted blue bags contain 5 mirrored lime bags.
dotted fuchsia bags contain 2 wavy magenta bags.
bright beige bags contain 1 mirrored maroon bag.
light bronze bags contain 1 posh maroon bag, 1 dotted maroon bag, 3 clear silver bags.
posh olive bags contain 2 wavy orange bags.
shiny salmon bags contain 2 light teal bags, 5 dark violet bags.
plaid tomato bags contain 5 shiny tan bags, 5 drab white bags.
striped blue bags contain 3 dark cyan bags, 2 pale magenta bags, 3 striped indigo bags.
bright lime bags contain 4 dark cyan bags.
vibrant crimson bags contain no other bags.
mirrored salmon bags contain 1 pale gray bag, 5 dark plum bags.
dim brown bags contain 4 faded fuchsia bags, 4 dull indigo bags.
clear aqua bags contain 1 mirrored black bag, 1 light bronze bag, 2 mirrored maroon bags, 4 mirrored white bags.
clear red bags contain 1 bright lavender bag.
dark maroon bags contain 1 light chartreuse bag.
bright silver bags contain 1 wavy tan bag, 3 plaid black bags, 2 dark gray bags.
faded lime bags contain 1 pale silver bag, 3 drab teal bags.
plaid lavender bags contain 1 plaid fuchsia bag.
faded yellow bags contain 4 dull blue bags.
dark blue bags contain 1 dotted red bag, 1 bright indigo bag, 2 posh tan bags.
light aqua bags contain 3 shiny olive bags, 2 dotted brown bags, 1 dull green bag.
striped gray bags contain 5 faded crimson bags, 4 clear white bags.
dark chartreuse bags contain 5 faded lime bags.
plaid chartreuse bags contain 3 shiny teal bags.
wavy gray bags contain 5 plaid lime bags, 5 wavy olive bags, 5 dim orange bags.
dull yellow bags contain 5 faded chartreuse bags, 2 clear crimson bags, 4 faded fuchsia bags.
muted magenta bags contain 4 mirrored teal bags, 3 drab silver bags, 3 drab lavender bags, 2 mirrored orange bags.
pale turquoise bags contain 3 bright lavender bags, 1 shiny tan bag, 4 posh teal bags, 2 posh cyan bags.
light turquoise bags contain 1 plaid gold bag.
pale brown bags contain 4 muted orange bags.
posh chartreuse bags contain 1 plaid lime bag, 4 shiny gray bags, 3 pale bronze bags, 3 vibrant bronze bags.
posh gray bags contain 3 dim salmon bags.
wavy tomato bags contain 3 vibrant salmon bags, 5 vibrant yellow bags, 2 vibrant green bags, 3 striped brown bags.
dotted indigo bags contain 5 shiny fuchsia bags, 1 posh lime bag, 1 muted beige bag.
pale lime bags contain 4 wavy fuchsia bags.
dull lime bags contain 2 light bronze bags, 3 light beige bags, 4 wavy tomato bags.
shiny olive bags contain 5 dull aqua bags, 5 muted gray bags, 5 posh olive bags.
muted teal bags contain 3 dull teal bags, 5 bright magenta bags.
dull white bags contain 5 striped yellow bags, 1 dim aqua bag.
shiny silver bags contain 4 shiny olive bags, 4 wavy orange bags, 2 mirrored red bags.
dim turquoise bags contain 4 drab gold bags.
clear brown bags contain no other bags.
mirrored olive bags contain 4 dim aqua bags.
striped purple bags contain 5 wavy tan bags.
faded violet bags contain 4 dull tan bags.
faded salmon bags contain 5 striped fuchsia bags, 1 muted lime bag.
mirrored yellow bags contain 2 dark orange bags.
wavy gold bags contain 2 muted salmon bags.
pale tomato bags contain 1 vibrant crimson bag, 5 light black bags, 3 dotted brown bags.
clear bronze bags contain 1 mirrored black bag, 3 wavy red bags, 4 faded white bags, 5 vibrant bronze bags.
mirrored silver bags contain 3 wavy salmon bags, 4 drab brown bags, 1 striped green bag, 4 mirrored lime bags.
dull bronze bags contain 1 dim orange bag, 1 light maroon bag, 5 wavy bronze bags, 2 posh blue bags.
posh lime bags contain 2 dark bronze bags.
light teal bags contain 4 dotted cyan bags, 4 dark crimson bags, 4 striped orange bags, 4 pale black bags.
dark lime bags contain 2 posh red bags.
vibrant yellow bags contain 4 dull indigo bags.
vibrant green bags contain 3 bright silver bags, 1 striped fuchsia bag, 5 dim tan bags.
mirrored lavender bags contain 1 dull maroon bag, 1 bright silver bag, 4 drab teal bags, 2 posh blue bags.
bright salmon bags contain 1 dark aqua bag.
clear green bags contain 3 vibrant blue bags, 4 dotted salmon bags, 5 striped violet bags.
clear lavender bags contain 2 faded silver bags, 5 dim tan bags, 4 drab white bags.
dim chartreuse bags contain 4 dark gray bags.
posh blue bags contain 1 clear silver bag, 5 clear crimson bags, 2 light beige bags.
dim maroon bags contain 5 dotted fuchsia bags.
muted crimson bags contain 1 dark cyan bag.
drab cyan bags contain 4 wavy brown bags.
faded lavender bags contain 3 posh coral bags, 2 dotted violet bags, 3 pale gray bags, 4 plaid beige bags.
dim aqua bags contain 5 dim tan bags, 3 posh olive bags.
posh magenta bags contain 3 bright orange bags, 4 bright salmon bags, 1 vibrant beige bag.
plaid purple bags contain 2 mirrored gray bags, 5 mirrored tan bags.
muted tomato bags contain 1 dotted tomato bag, 4 bright magenta bags, 1 striped turquoise bag.
dull black bags contain 5 wavy coral bags, 4 wavy beige bags, 1 drab lavender bag, 4 dark beige bags.
mirrored maroon bags contain 4 shiny teal bags, 3 light blue bags, 1 light aqua bag, 3 faded tan bags.
posh aqua bags contain 3 dotted orange bags, 4 wavy crimson bags, 5 pale magenta bags, 5 posh fuchsia bags.
muted lavender bags contain 4 faded green bags, 1 dark aqua bag, 4 posh maroon bags, 2 dark white bags.
posh tomato bags contain 2 posh black bags.
dull gold bags contain 1 faded turquoise bag, 4 drab brown bags, 4 shiny turquoise bags.
plaid violet bags contain 3 bright plum bags, 4 clear olive bags, 4 drab bronze bags.
pale silver bags contain 5 wavy olive bags, 5 dull indigo bags, 1 light plum bag, 4 dark gray bags.
dull brown bags contain 1 dim orange bag.
shiny beige bags contain 5 faded purple bags.
striped cyan bags contain 1 muted black bag, 4 dull aqua bags.
dotted green bags contain 4 wavy white bags, 2 shiny violet bags, 4 muted chartreuse bags.
dotted chartreuse bags contain 5 dull bronze bags.
plaid aqua bags contain 2 shiny indigo bags, 5 muted lavender bags, 3 light blue bags, 4 vibrant salmon bags.
mirrored beige bags contain 2 light white bags, 1 wavy coral bag.
light orange bags contain 3 drab salmon bags, 3 clear lavender bags, 4 dark beige bags, 1 clear purple bag.
dark tan bags contain 1 posh olive bag.
muted lime bags contain 3 faded chartreuse bags, 4 muted silver bags, 3 vibrant salmon bags, 1 mirrored blue bag.
posh gold bags contain 5 vibrant magenta bags.
faded beige bags contain 5 faded black bags, 4 clear coral bags, 4 bright olive bags, 1 faded lime bag.
vibrant turquoise bags contain 3 clear cyan bags, 1 dotted fuchsia bag.
faded bronze bags contain 4 posh teal bags, 3 plaid tomato bags, 4 dark bronze bags.
shiny blue bags contain 3 drab indigo bags, 1 dark lime bag.
plaid yellow bags contain 1 plaid lime bag.
shiny aqua bags contain 1 vibrant tomato bag, 4 dark aqua bags, 5 vibrant cyan bags, 4 striped coral bags.
mirrored indigo bags contain 5 vibrant turquoise bags.
wavy cyan bags contain 1 light yellow bag, 4 faded fuchsia bags, 2 clear silver bags, 3 vibrant fuchsia bags.
dull gray bags contain 2 mirrored turquoise bags, 2 posh yellow bags.
dim yellow bags contain 4 light silver bags.
striped crimson bags contain 3 dim salmon bags.
pale coral bags contain 4 vibrant violet bags, 4 posh teal bags, 3 drab aqua bags.
faded aqua bags contain 3 bright magenta bags, 4 muted aqua bags, 3 light salmon bags, 3 light black bags.
drab orange bags contain 2 drab purple bags, 5 light black bags, 5 dull blue bags, 1 bright purple bag.
drab bronze bags contain 3 clear violet bags, 3 drab crimson bags, 3 dotted yellow bags, 5 muted salmon bags.
drab blue bags contain 3 faded violet bags, 4 bright lavender bags, 2 vibrant cyan bags.
pale olive bags contain 4 shiny yellow bags, 1 dull yellow bag, 2 striped tomato bags.
light salmon bags contain 2 shiny gold bags, 2 light silver bags, 4 wavy magenta bags.
wavy brown bags contain 4 dim indigo bags, 3 pale olive bags, 3 mirrored orange bags.
vibrant beige bags contain 5 light lavender bags, 3 wavy bronze bags, 1 plaid yellow bag, 2 dark aqua bags.
clear tan bags contain 3 posh fuchsia bags, 1 pale fuchsia bag.
dotted turquoise bags contain 3 light maroon bags.
dull magenta bags contain 2 dark tomato bags.
dull chartreuse bags contain 5 light chartreuse bags, 2 dotted chartreuse bags.
bright red bags contain 1 dotted brown bag, 1 posh yellow bag, 5 light white bags, 4 shiny maroon bags.
bright bronze bags contain 4 bright salmon bags, 4 plaid bronze bags, 2 dim chartreuse bags.
vibrant gold bags contain 2 faded purple bags, 3 mirrored maroon bags, 3 dull gray bags.
vibrant cyan bags contain 2 faded olive bags, 4 dull silver bags, 3 mirrored lime bags, 4 faded red bags.
mirrored plum bags contain 3 dark orange bags, 5 plaid lavender bags, 5 dim red bags.
clear white bags contain 3 striped beige bags.
drab fuchsia bags contain 4 striped magenta bags, 2 vibrant violet bags, 4 pale aqua bags.
dark purple bags contain 5 striped violet bags.
mirrored tomato bags contain 5 drab olive bags.
dull olive bags contain 4 wavy purple bags.
wavy maroon bags contain 4 pale gold bags.
vibrant blue bags contain 1 faded lime bag, 4 light plum bags.
clear teal bags contain 4 dark green bags, 5 clear brown bags.
clear beige bags contain 4 shiny cyan bags, 3 striped salmon bags.
drab indigo bags contain 5 drab tan bags, 4 shiny black bags, 4 striped brown bags.
muted bronze bags contain 4 dark chartreuse bags, 5 pale crimson bags, 4 vibrant gold bags.
muted olive bags contain 3 wavy olive bags, 5 dark bronze bags, 4 bright aqua bags, 1 dotted yellow bag.
dull beige bags contain 1 dull purple bag.
dotted yellow bags contain 3 dim plum bags, 2 plaid lavender bags.
wavy lavender bags contain 1 vibrant violet bag, 4 posh blue bags, 1 posh plum bag.
dim fuchsia bags contain 5 pale yellow bags, 4 faded plum bags, 5 bright lime bags.
plaid gray bags contain 5 dark violet bags, 2 dotted crimson bags, 4 dull fuchsia bags, 1 drab magenta bag.
vibrant coral bags contain 2 shiny cyan bags, 4 pale magenta bags, 5 striped coral bags, 3 pale teal bags.
drab yellow bags contain 4 clear orange bags, 5 faded fuchsia bags.
dark red bags contain 5 mirrored maroon bags, 3 clear blue bags, 2 striped crimson bags, 2 dotted violet bags.
mirrored cyan bags contain 5 dotted maroon bags, 5 posh turquoise bags, 2 faded gray bags.
muted yellow bags contain 1 light cyan bag, 2 dim orange bags, 5 dull olive bags, 5 light green bags.
wavy aqua bags contain 2 muted cyan bags, 4 mirrored green bags, 5 muted tomato bags.
vibrant lavender bags contain 1 dotted gold bag, 1 light chartreuse bag, 3 mirrored gray bags.
bright black bags contain 1 striped lavender bag, 2 shiny tan bags, 4 bright lime bags.
wavy chartreuse bags contain 4 mirrored red bags.
dull turquoise bags contain 5 faded red bags, 1 light brown bag, 1 clear magenta bag.
dull silver bags contain 4 dark gray bags, 1 faded green bag.
pale black bags contain 1 plaid indigo bag, 3 light tomato bags, 4 drab blue bags.
clear tomato bags contain 1 dim tan bag, 1 clear lavender bag, 1 striped fuchsia bag, 5 clear orange bags.
dark cyan bags contain 4 shiny brown bags.
pale blue bags contain 1 clear green bag.
dotted lavender bags contain 3 dotted maroon bags, 5 wavy salmon bags, 2 pale tomato bags, 5 mirrored blue bags.
pale orange bags contain 4 pale silver bags, 4 striped lime bags.
drab chartreuse bags contain 2 dark gold bags, 5 clear crimson bags, 3 dull green bags.
striped violet bags contain 4 plaid lime bags.
muted gold bags contain no other bags.
mirrored gray bags contain 1 light green bag, 1 striped beige bag.
bright lavender bags contain 2 clear blue bags.
striped gold bags contain 3 muted turquoise bags.
dim white bags contain 1 vibrant lavender bag.
wavy beige bags contain 4 light chartreuse bags, 5 dark lime bags.
dim tomato bags contain 2 wavy aqua bags, 3 faded salmon bags.
light blue bags contain 2 wavy purple bags, 1 dull olive bag.
drab brown bags contain 5 drab magenta bags, 2 muted teal bags.
wavy olive bags contain 3 pale green bags, 5 muted gray bags.
bright chartreuse bags contain 1 clear yellow bag, 2 dotted olive bags, 1 posh olive bag.
posh violet bags contain 5 muted tomato bags, 5 light aqua bags, 3 pale cyan bags, 2 mirrored chartreuse bags.
dotted blue bags contain 4 plaid yellow bags, 3 vibrant bronze bags, 2 dull maroon bags, 3 shiny silver bags.
pale white bags contain 3 plaid brown bags, 2 mirrored aqua bags, 2 dim turquoise bags.
dull lavender bags contain 1 light blue bag, 5 drab tan bags, 3 light yellow bags.
pale cyan bags contain 5 pale green bags, 5 dull tomato bags, 4 vibrant orange bags.
mirrored tan bags contain 1 mirrored blue bag, 5 wavy purple bags.
plaid maroon bags contain 5 bright orange bags, 1 dull fuchsia bag, 5 dull indigo bags, 4 light white bags.
drab plum bags contain 5 pale silver bags, 1 clear yellow bag, 5 dotted fuchsia bags.
muted aqua bags contain 2 posh blue bags, 3 muted chartreuse bags, 1 drab tan bag, 3 dotted brown bags.
striped lavender bags contain 3 posh yellow bags, 5 drab white bags, 1 muted gold bag.
posh bronze bags contain 1 mirrored lime bag, 2 muted cyan bags, 3 muted aqua bags.
dotted brown bags contain 1 dotted orange bag, 3 striped blue bags, 3 dotted teal bags, 4 wavy magenta bags.
light chartreuse bags contain no other bags.
dotted purple bags contain 3 muted lavender bags.
vibrant violet bags contain 3 light violet bags.
dark green bags contain 3 mirrored teal bags, 3 bright magenta bags, 2 light chartreuse bags.
faded indigo bags contain 3 faded fuchsia bags, 4 dim magenta bags.
bright cyan bags contain 4 vibrant olive bags, 4 faded olive bags, 1 posh teal bag.
drab white bags contain no other bags.
clear magenta bags contain 1 dotted maroon bag, 2 wavy olive bags, 5 drab white bags.
light yellow bags contain 4 shiny brown bags, 4 light fuchsia bags, 1 mirrored turquoise bag, 2 drab teal bags.
dark beige bags contain 4 dim crimson bags, 5 mirrored turquoise bags, 3 posh yellow bags, 1 dull chartreuse bag.
dark teal bags contain 5 mirrored tan bags, 5 vibrant tomato bags, 2 bright violet bags, 2 striped silver bags.
pale plum bags contain 2 drab white bags.
light red bags contain 2 striped blue bags, 2 bright violet bags, 4 clear orange bags.
plaid brown bags contain 4 light maroon bags, 5 dull bronze bags, 3 plaid black bags.
plaid bronze bags contain 4 muted salmon bags, 1 light violet bag, 4 plaid black bags.
bright orange bags contain 5 light green bags, 2 wavy plum bags, 5 faded coral bags.
plaid black bags contain 5 dark green bags, 3 dull indigo bags, 3 dim tan bags.
shiny lime bags contain 5 bright lime bags.
shiny fuchsia bags contain 2 dotted tan bags, 3 drab white bags.
bright gold bags contain 1 drab magenta bag, 4 pale salmon bags.
shiny gold bags contain 1 drab white bag, 2 wavy purple bags, 2 muted gray bags, 5 clear crimson bags.
plaid beige bags contain 3 dotted yellow bags.
vibrant silver bags contain 2 muted gold bags, 5 dim teal bags, 4 mirrored white bags, 2 clear blue bags.
dotted black bags contain 1 wavy crimson bag, 5 vibrant purple bags.
mirrored brown bags contain 4 drab aqua bags, 4 dark teal bags, 5 striped plum bags.
dotted red bags contain 5 bright lime bags, 5 vibrant magenta bags, 1 striped turquoise bag.
bright tan bags contain 2 dull yellow bags, 2 posh tomato bags.
striped aqua bags contain 3 clear blue bags, 1 dark maroon bag.
dotted coral bags contain 1 vibrant silver bag, 3 dark green bags, 4 posh gray bags, 2 light red bags.
mirrored lime bags contain 3 mirrored white bags, 1 plaid tomato bag, 2 shiny yellow bags, 2 vibrant black bags.
dark gray bags contain 3 faded green bags, 3 vibrant crimson bags.
wavy lime bags contain 5 wavy salmon bags, 2 faded tomato bags.
dotted lime bags contain 5 drab brown bags, 1 faded salmon bag, 2 wavy violet bags, 4 posh olive bags.
light black bags contain 5 striped indigo bags.
shiny yellow bags contain 5 wavy tan bags, 5 drab white bags, 4 posh olive bags.
bright yellow bags contain 3 posh red bags, 2 plaid black bags.
dull tan bags contain 4 clear brown bags, 3 wavy tan bags.
shiny tomato bags contain 2 shiny orange bags, 4 light lavender bags, 1 plaid lavender bag.
vibrant aqua bags contain 5 pale green bags, 3 drab crimson bags, 2 shiny brown bags.
striped salmon bags contain 2 posh orange bags.
light silver bags contain 1 shiny yellow bag, 4 mirrored turquoise bags, 1 bright coral bag, 2 posh maroon bags.
striped fuchsia bags contain 3 drab white bags, 3 faded chartreuse bags, 4 vibrant black bags, 3 wavy tan bags.
bright tomato bags contain 3 light beige bags, 4 drab teal bags.
shiny plum bags contain 4 clear bronze bags.
vibrant red bags contain 3 bright magenta bags.
mirrored orange bags contain 2 mirrored white bags, 3 dotted brown bags, 3 bright silver bags, 4 pale teal bags.
dull indigo bags contain no other bags.
wavy yellow bags contain 4 wavy white bags.
muted turquoise bags contain 2 posh red bags, 3 dark green bags, 4 mirrored white bags.
striped indigo bags contain 3 dark cyan bags, 5 clear blue bags, 2 faded chartreuse bags.
mirrored green bags contain 4 mirrored chartreuse bags, 3 striped red bags.
plaid white bags contain 1 vibrant salmon bag, 1 dark yellow bag, 2 vibrant violet bags.
dark plum bags contain 4 muted coral bags, 4 mirrored blue bags, 1 vibrant aqua bag.
drab turquoise bags contain 1 dotted purple bag, 1 light plum bag.
light maroon bags contain 2 wavy purple bags, 2 dim orange bags, 1 mirrored white bag, 3 striped tomato bags.
shiny maroon bags contain 2 bright blue bags.
drab crimson bags contain 1 bright magenta bag, 3 drab white bags.
dark aqua bags contain 3 shiny brown bags, 5 dark gray bags.
posh turquoise bags contain 2 shiny gray bags.
muted indigo bags contain 4 wavy purple bags.
dotted salmon bags contain 1 vibrant violet bag, 1 mirrored lavender bag.
plaid indigo bags contain 2 wavy indigo bags, 2 dark white bags, 3 wavy tan bags, 3 vibrant crimson bags.
muted brown bags contain 3 posh yellow bags, 4 shiny lime bags, 5 striped lavender bags.
vibrant gray bags contain 1 mirrored silver bag, 2 light coral bags, 1 faded gold bag, 1 dull fuchsia bag.
drab tomato bags contain 1 wavy tan bag, 1 shiny tan bag, 1 clear crimson bag.
wavy white bags contain 3 muted blue bags, 2 wavy plum bags, 4 dim silver bags, 3 mirrored tan bags.
shiny lavender bags contain 1 posh coral bag, 2 dotted crimson bags, 2 plaid red bags, 1 striped silver bag.
dull fuchsia bags contain 4 light bronze bags, 3 clear gray bags, 1 bright coral bag.
drab teal bags contain 5 muted chartreuse bags, 4 dull silver bags, 5 vibrant black bags, 3 shiny olive bags.
clear crimson bags contain 4 clear brown bags, 3 drab crimson bags, 4 clear blue bags, 1 vibrant black bag.
posh beige bags contain 5 plaid teal bags.
clear silver bags contain 3 plaid tomato bags, 3 bright silver bags, 1 mirrored white bag.
mirrored red bags contain 2 striped indigo bags, 2 drab teal bags.
posh indigo bags contain 3 faded red bags.
dark silver bags contain 5 wavy tan bags, 2 dotted maroon bags.
drab red bags contain 2 dotted chartreuse bags, 3 mirrored tan bags, 5 pale plum bags.
plaid turquoise bags contain 4 dim silver bags, 1 bright orange bag.
dim blue bags contain 1 muted lavender bag, 1 wavy plum bag.
plaid coral bags contain 2 shiny coral bags.
striped silver bags contain 2 muted brown bags.
vibrant tomato bags contain 1 muted black bag.
dark turquoise bags contain 2 light silver bags.
vibrant lime bags contain 2 light beige bags, 3 bright green bags, 5 faded purple bags.
mirrored chartreuse bags contain 2 wavy tan bags, 5 dim tan bags.
light plum bags contain 5 faded green bags.
dim tan bags contain 1 faded chartreuse bag, 2 clear brown bags, 1 faded green bag, 2 muted gold bags.
shiny bronze bags contain 5 drab aqua bags.
dotted tomato bags contain 4 wavy magenta bags.
mirrored crimson bags contain 1 dim bronze bag.
light crimson bags contain 3 posh red bags.
dull coral bags contain 3 striped crimson bags, 4 mirrored salmon bags.
drab lavender bags contain 3 dim salmon bags.
dotted crimson bags contain 3 dark cyan bags, 4 posh blue bags, 2 light fuchsia bags.
dotted tan bags contain 2 posh fuchsia bags, 4 dim black bags.
dark coral bags contain 2 mirrored green bags, 4 shiny white bags, 2 shiny tomato bags.
striped orange bags contain 1 muted violet bag, 5 pale cyan bags, 2 drab tomato bags, 3 faded violet bags.
pale aqua bags contain 3 shiny fuchsia bags, 4 shiny violet bags.
wavy plum bags contain 4 light chartreuse bags, 5 vibrant tan bags, 4 muted lime bags.
mirrored turquoise bags contain 4 shiny brown bags, 4 drab tan bags.
dark magenta bags contain 5 faded violet bags, 2 posh lavender bags.
striped bronze bags contain 3 light silver bags, 3 mirrored brown bags, 3 posh purple bags, 4 drab turquoise bags.
faded red bags contain 2 dark cyan bags, 2 striped tan bags, 4 mirrored violet bags.
faded turquoise bags contain 1 striped crimson bag.
clear gold bags contain 3 clear crimson bags, 5 faded green bags, 4 dim tan bags.
clear coral bags contain 3 striped salmon bags.
faded gray bags contain 4 light salmon bags, 5 clear orange bags, 1 dim yellow bag, 2 wavy green bags.
posh lavender bags contain 2 clear silver bags, 1 wavy indigo bag, 4 faded brown bags, 2 light white bags.
pale red bags contain 3 clear orange bags.
dim lavender bags contain 1 posh silver bag.
vibrant orange bags contain 2 pale magenta bags.
pale gray bags contain 2 dark aqua bags, 2 mirrored turquoise bags, 2 striped fuchsia bags, 5 wavy purple bags.
pale teal bags contain 2 striped brown bags, 4 shiny brown bags.
muted tan bags contain 3 dotted purple bags, 5 clear blue bags, 5 bright plum bags.
dotted cyan bags contain 1 mirrored chartreuse bag, 2 dotted gray bags, 5 pale tomato bags, 1 mirrored lime bag.
dark brown bags contain 4 vibrant orange bags, 3 faded olive bags, 5 posh blue bags.
dull orange bags contain 5 posh coral bags, 5 vibrant green bags, 3 dull maroon bags, 1 striped tomato bag.
plaid silver bags contain 1 muted turquoise bag, 1 wavy green bag.
dull crimson bags contain 4 faded red bags, 1 dotted plum bag, 2 plaid orange bags, 1 posh yellow bag.
muted orange bags contain 4 pale yellow bags, 1 dark maroon bag, 5 mirrored white bags.
wavy black bags contain 4 mirrored blue bags, 4 drab chartreuse bags, 4 dull aqua bags.
light magenta bags contain 2 muted coral bags, 3 wavy violet bags.
faded crimson bags contain 2 dim orange bags, 3 vibrant crimson bags, 4 clear lime bags, 5 wavy olive bags.
light fuchsia bags contain 2 dull green bags, 4 dull indigo bags.
mirrored black bags contain 1 wavy magenta bag, 3 light bronze bags, 3 dull teal bags.
striped tan bags contain 5 vibrant yellow bags, 3 dull silver bags, 5 mirrored teal bags.
dark crimson bags contain 1 mirrored teal bag, 2 muted maroon bags, 5 dull green bags.
light indigo bags contain 5 dotted purple bags.
light brown bags contain 4 dark fuchsia bags, 1 bright olive bag.
wavy purple bags contain 3 vibrant black bags, 5 dull teal bags, 1 bright magenta bag.
posh white bags contain 5 muted purple bags, 5 drab silver bags.
faded gold bags contain 2 dull teal bags, 5 muted orange bags, 3 mirrored lavender bags, 2 clear orange bags.
clear maroon bags contain 2 dim crimson bags, 3 dim maroon bags, 5 wavy salmon bags, 5 mirrored black bags.
bright maroon bags contain 5 dark bronze bags, 4 pale coral bags.
clear turquoise bags contain 1 muted gold bag.
bright coral bags contain 3 striped lavender bags, 4 drab tomato bags, 1 bright lime bag.
wavy teal bags contain 3 faded tan bags.
mirrored gold bags contain 4 faded violet bags.
dark orange bags contain 5 muted purple bags, 1 drab turquoise bag, 5 pale beige bags.
dull green bags contain 1 faded chartreuse bag.
posh plum bags contain 1 dull turquoise bag.
plaid red bags contain 4 wavy orange bags.
faded green bags contain 2 wavy tan bags, 2 muted gold bags.
drab maroon bags contain 5 striped fuchsia bags, 5 light indigo bags.
clear blue bags contain 5 bright magenta bags, 2 muted gold bags, 1 faded chartreuse bag.
shiny purple bags contain 3 mirrored lavender bags, 3 light crimson bags, 2 light turquoise bags, 1 drab aqua bag.
wavy silver bags contain 5 mirrored tan bags, 2 dotted crimson bags, 3 pale magenta bags, 5 vibrant plum bags.
drab gray bags contain 4 mirrored red bags, 4 plaid yellow bags, 4 muted silver bags, 3 light black bags.
striped maroon bags contain 5 dull teal bags, 1 bright indigo bag, 3 clear gray bags.
striped tomato bags contain 2 clear gold bags, 4 plaid red bags, 1 vibrant yellow bag, 2 dark aqua bags.
vibrant brown bags contain 4 vibrant orange bags.
wavy green bags contain 5 striped coral bags, 5 clear brown bags, 4 drab gold bags, 3 faded green bags.
dark tomato bags contain 3 wavy gray bags, 4 clear yellow bags, 4 light fuchsia bags, 1 drab plum bag.
plaid gold bags contain 3 faded red bags.
light tomato bags contain 1 striped black bag.
clear olive bags contain 2 drab lime bags.
dim red bags contain 4 light yellow bags, 5 vibrant yellow bags, 3 dark green bags, 2 vibrant aqua bags.
vibrant indigo bags contain 1 vibrant silver bag.
pale crimson bags contain 4 wavy green bags, 1 striped fuchsia bag, 4 posh indigo bags.
clear lime bags contain 1 wavy tan bag.
muted gray bags contain 1 faded green bag, 2 dull silver bags, 4 drab crimson bags.
striped chartreuse bags contain 2 vibrant silver bags, 2 shiny tan bags, 3 muted silver bags, 2 shiny maroon bags.
muted coral bags contain 5 dark maroon bags, 1 clear lavender bag, 4 bright teal bags, 4 faded cyan bags.
posh coral bags contain 2 clear brown bags.
bright crimson bags contain 2 vibrant salmon bags.
muted plum bags contain 1 pale silver bag.
dull plum bags contain 2 shiny cyan bags, 3 faded salmon bags.
bright olive bags contain 3 dim brown bags, 5 dark brown bags, 1 muted white bag.
clear plum bags contain 5 clear chartreuse bags, 5 striped aqua bags.
muted chartreuse bags contain 1 faded crimson bag, 1 dark cyan bag.
muted purple bags contain 1 bright plum bag, 2 light olive bags, 2 striped red bags, 4 pale magenta bags.
posh yellow bags contain 4 wavy purple bags, 3 dark green bags, 3 striped tomato bags, 3 light chartreuse bags.
light violet bags contain 5 plaid black bags, 1 muted brown bag, 1 vibrant aqua bag.
drab olive bags contain 1 dim brown bag, 2 dull blue bags.
pale indigo bags contain 3 dark magenta bags, 2 dull blue bags.
mirrored blue bags contain 5 clear crimson bags, 1 clear orange bag, 3 drab tomato bags.
striped green bags contain 2 shiny black bags, 4 dotted chartreuse bags, 4 wavy white bags.
plaid teal bags contain 4 dark green bags, 5 muted chartreuse bags, 5 vibrant aqua bags, 4 dotted olive bags.
faded plum bags contain 2 drab white bags, 4 light blue bags, 2 clear lavender bags, 3 vibrant white bags.
dim green bags contain 2 faded green bags, 2 bright magenta bags.
dark lavender bags contain 2 muted lime bags, 2 faded tomato bags, 5 wavy purple bags, 3 light olive bags.
dim purple bags contain 4 dotted plum bags.
dark salmon bags contain 1 dull violet bag, 3 bright indigo bags.
dim cyan bags contain 5 dim crimson bags, 2 clear brown bags, 1 muted brown bag, 4 light silver bags.

32
7/part1.py Normal file
View File

@ -0,0 +1,32 @@
import re
rawRules = ""
with open("input.txt", "r") as f:
rawRules = f.read()
rules = {}
for rawRule in rawRules.split("\n"):
bags = re.findall(r"(\d+)? ?(\w+ \w+) bag", rawRule)
targetColor = bags[0][1]
rules[targetColor] = {}
if (bags[1][1] != "no other"):
for bag in bags[1:]:
rules[targetColor][bag[1]] = int(bag[0])
shinyGoldMemo = {}
def doesContainShinyGold(color):
if shinyGoldMemo.get(color) == None:
for nestedColor in rules[color].keys():
if nestedColor == "shiny gold" or doesContainShinyGold(nestedColor):
shinyGoldMemo[color] = True
break
if shinyGoldMemo.get(color) == None:
shinyGoldMemo[color] = False
return shinyGoldMemo[color]
# Populate memo
for color in rules.keys():
doesContainShinyGold(color)
print(sum(shinyGoldMemo.values()))

25
7/part2.py Normal file
View File

@ -0,0 +1,25 @@
import re
rawRules = ""
with open("input.txt", "r") as f:
rawRules = f.read()
rules = {}
for rawRule in rawRules.split("\n"):
bags = re.findall(r"(\d+)? ?(\w+ \w+) bag", rawRule)
targetColor = bags[0][1]
rules[targetColor] = {}
if (bags[1][1] != "no other"):
for bag in bags[1:]:
rules[targetColor][bag[1]] = int(bag[0])
countMemo = {}
def getTotalBagCount(color):
if countMemo.get(color) == None:
countMemo[color] = 0
for bag in rules[color].items():
countMemo[color] += (getTotalBagCount(bag[0]) + 1) * bag[1]
return countMemo[color]
print(getTotalBagCount("shiny gold"))

7
7/test.txt Normal file
View File

@ -0,0 +1,7 @@
shiny gold bags contain 2 dark red bags.
dark red bags contain 2 dark orange bags.
dark orange bags contain 2 dark yellow bags.
dark yellow bags contain 2 dark green bags.
dark green bags contain 2 dark blue bags.
dark blue bags contain 2 dark violet bags.
dark violet bags contain no other bags.

626
8/input.txt Normal file
View File

@ -0,0 +1,626 @@
jmp +149
acc -11
nop +95
acc -6
jmp +196
acc +2
acc -6
acc +38
acc +18
jmp +246
acc +43
acc +37
acc -1
jmp +390
acc +32
acc -15
jmp +487
jmp +382
jmp +71
jmp +331
acc -3
acc -12
acc +4
jmp +417
acc +30
acc +20
jmp +410
acc +22
acc +25
acc +19
acc +5
jmp +405
acc +15
acc +33
acc +7
acc -18
jmp +463
acc +25
acc +8
acc +1
jmp +64
jmp +1
jmp +562
jmp +4
acc +21
acc +12
jmp +467
nop +197
acc +32
jmp +7
acc +2
jmp +352
acc +15
jmp +289
acc +39
jmp +448
jmp +227
acc +17
acc +4
jmp +326
acc -1
nop +167
acc +30
nop +471
jmp +101
acc +45
nop +276
acc +12
jmp +215
nop +80
acc +23
acc +31
jmp +104
acc +39
acc +15
jmp +40
nop +433
acc +21
acc +22
acc +37
jmp +421
acc +14
jmp -30
acc +42
acc +38
jmp +203
acc -8
acc +27
jmp +102
acc -5
acc +0
acc +18
acc +26
jmp +212
acc +25
acc +18
jmp +209
acc +18
acc +44
acc +47
nop -40
jmp +372
acc +29
jmp +384
acc +39
acc -11
acc +43
jmp +406
acc +2
nop +439
jmp +343
acc +29
acc +18
jmp +457
jmp -31
jmp +146
acc +12
acc +26
nop +98
jmp +125
acc +6
acc +35
acc +48
acc +44
jmp +497
acc +17
acc -8
jmp +223
acc +47
jmp +405
jmp +212
jmp +317
acc -13
acc -6
jmp +94
acc +47
acc +50
acc -16
acc +38
jmp +290
jmp +383
nop -44
acc +38
nop +418
acc +42
jmp +233
nop -94
acc +46
jmp +413
acc +10
acc -6
jmp +410
acc +30
jmp -93
acc -13
jmp +6
acc -16
acc +18
nop +403
acc +0
jmp +68
acc +45
jmp +302
acc +5
jmp +26
acc -5
acc +49
jmp +412
acc +3
acc +14
jmp +278
acc +6
acc +4
jmp -58
acc +14
jmp -60
acc -12
acc +23
jmp +225
acc +9
acc +17
acc -10
acc -13
jmp +216
acc -8
nop +363
jmp +84
nop +300
acc -15
jmp +415
acc +17
acc -11
nop +96
jmp +377
nop +259
acc +4
jmp +327
acc +0
jmp +149
jmp +12
acc +23
acc +43
acc +2
jmp +1
jmp +400
acc +24
jmp +114
acc +3
acc -13
jmp +149
jmp +100
jmp +1
jmp +157
acc +23
acc -15
jmp -139
nop -85
jmp +201
acc -2
acc +39
acc +30
nop -93
jmp -11
acc +46
jmp +285
jmp +1
acc +41
jmp +115
acc +48
acc -12
acc -17
jmp -15
nop +82
acc +25
jmp -151
acc +20
acc -14
acc +9
acc -9
jmp +284
acc +27
acc +38
acc +50
jmp +145
nop +279
jmp -55
nop +245
jmp +254
acc +4
jmp +368
nop -119
acc -11
acc +16
acc +19
jmp -54
nop -186
nop -187
acc +9
acc +44
jmp -222
jmp +253
nop -234
acc +33
acc +35
acc -17
jmp +11
acc +2
acc +41
acc +47
jmp +310
acc +0
acc -8
acc +1
jmp +55
acc -1
jmp -257
acc +7
acc +44
nop +253
acc +41
jmp +302
acc +16
jmp -185
jmp +140
jmp +1
nop +3
acc +35
jmp -267
acc +6
jmp -269
jmp +211
acc +30
acc +14
acc +16
acc +41
jmp -47
jmp -192
nop -21
acc -1
jmp +192
acc -6
acc +15
acc +3
nop -247
jmp -88
jmp +164
acc +47
nop +43
acc +40
jmp +151
jmp +85
jmp +1
acc +40
jmp -257
acc +13
acc +13
jmp -256
acc +25
acc +39
jmp +260
acc +13
acc -18
acc -19
acc -14
jmp -10
acc -16
acc +9
jmp -199
nop +185
acc +38
jmp -261
nop +200
acc -18
nop +115
acc +36
jmp -259
acc +47
acc -2
acc +9
jmp -139
nop -117
jmp -13
jmp +1
jmp +247
acc +19
acc +49
jmp +177
acc -1
jmp +249
jmp -218
acc +12
acc +33
jmp +108
jmp -48
nop -205
acc +32
jmp -159
jmp -129
acc +32
jmp +1
jmp +249
nop +75
acc +17
acc -16
jmp +253
acc -9
jmp -12
acc +15
jmp -14
acc +13
acc -8
nop -13
jmp +27
nop -336
acc +33
acc +10
acc -1
jmp -350
nop -134
acc -11
jmp +5
acc +10
acc +13
acc +13
jmp -249
acc +8
jmp -215
jmp +49
acc +35
acc +28
jmp -54
acc +14
nop -264
jmp +1
jmp -166
jmp -291
acc +9
acc +43
jmp -301
nop +149
acc -9
jmp -81
jmp -287
acc +9
acc +35
acc -12
jmp -295
acc +46
jmp -394
acc +29
acc +19
acc +9
jmp -58
acc +7
acc +32
nop -261
acc +44
jmp -365
jmp +1
jmp +120
acc +37
nop -177
jmp +101
acc +42
acc +13
acc +36
jmp -343
acc +45
jmp -408
acc +23
acc +0
jmp -66
jmp +1
acc +34
acc +19
jmp +104
jmp +1
acc +36
jmp -141
jmp -44
acc +9
acc +30
acc +18
acc +0
jmp -303
jmp +1
acc +12
jmp +66
acc +0
jmp +82
acc +43
acc +18
jmp +49
acc -16
acc -3
acc +0
jmp -249
acc -2
nop +81
jmp +40
jmp +94
acc -16
acc +1
jmp -445
jmp +1
acc +22
jmp -130
acc +44
jmp -73
acc +3
acc +5
jmp -121
jmp -352
jmp -163
acc +15
acc +47
nop +141
jmp +140
acc -18
nop -289
acc +16
jmp -476
acc -19
nop +134
acc -10
acc +37
jmp -13
jmp -359
acc +32
acc +14
jmp -306
acc +25
acc +30
jmp -441
acc +44
acc +14
acc +12
acc +19
jmp -387
jmp -12
jmp -180
jmp -113
jmp -29
acc +34
acc -13
acc -12
nop +73
jmp -263
jmp -373
jmp -360
acc +38
nop -123
jmp -176
nop -155
acc -11
acc +32
nop +54
jmp -461
acc +31
acc +10
acc -7
acc -19
jmp -212
acc +41
acc +4
nop -2
jmp -483
acc +16
acc +42
acc -15
jmp -286
jmp -122
acc -4
jmp -436
acc +27
jmp -508
acc +38
nop -309
jmp +10
acc +31
acc +18
acc +5
jmp -119
acc +8
acc -7
acc -16
acc +18
jmp -416
acc -15
acc +1
acc +30
acc +8
jmp -476
jmp -298
acc +29
acc +24
acc -9
acc +35
jmp -438
nop -5
jmp -100
acc +5
acc +3
acc +5
acc -4
jmp +14
acc +43
acc +3
acc +40
jmp -517
acc +10
acc +35
acc +38
jmp -120
acc +1
acc -18
acc +0
acc +42
jmp -69
jmp -101
acc +1
jmp -271
acc +37
acc +17
jmp +1
jmp -401
acc +1
acc +3
acc -8
jmp -392
nop -99
acc +2
jmp -301
acc +10
acc +32
acc +3
jmp -286
jmp +1
jmp -444
nop -364
acc +46
acc +30
acc -2
jmp -13
nop -65
acc +22
jmp -292
acc -13
jmp -480
acc +4
acc -8
nop -500
jmp -113
acc -16
acc +40
acc -18
jmp -125
jmp -482
acc +28
acc -5
jmp -471
acc +33
acc +49
acc +21
acc +9
jmp +1

21
8/part1.py Normal file
View File

@ -0,0 +1,21 @@
import re
lines = []
with open("input.txt", "r") as f:
lines = f.read().split("\n")
acc = 0
visitedLines = []
currentLine = 0
while currentLine not in visitedLines:
visitedLines.append(currentLine)
cmd, num = re.findall(r"(\w{3}) ([-\+]\d+)", lines[currentLine])[0]
if cmd == "jmp":
currentLine += int(num)
elif cmd == "acc":
acc += int(num)
currentLine += 1
else:
currentLine += 1
print(acc)

43
8/part2.py Normal file
View File

@ -0,0 +1,43 @@
import re
lines = []
with open("input.txt", "r") as f:
lines = f.read().split("\n")
def simulate():
acc = 0
currentLine = 0
visitedLines = []
numOfLines = len(lines)
while currentLine not in visitedLines and currentLine != numOfLines:
visitedLines.append(currentLine)
cmd, num = re.findall(r"(\w{3}) ([-\+]\d+)", lines[currentLine])[0]
if cmd == "jmp":
currentLine += int(num)
elif cmd == "acc":
acc += int(num)
currentLine += 1
else:
currentLine += 1
if (currentLine == numOfLines):
return ("exited", acc)
else:
return ("terminated", acc)
# Change between jmp and nop
for i in range(0, len(lines)):
status, acc = "", 0
line = lines[i]
if line.startswith("jmp"):
lines[i] = "nop" + line[3:]
status, acc = simulate()
lines[i] = line
elif line.startswith("nop"):
lines[i] = "jmp" + line[3:]
status, acc = simulate()
lines[i] = line
if status == "exited":
print(acc)
break

1000
9/input.txt Normal file

File diff suppressed because it is too large Load Diff

15
9/part1.py Normal file
View File

@ -0,0 +1,15 @@
from itertools import combinations
numbers = []
with open("input.txt") as f:
numbers = list(int(num) for num in f.read().split("\n"))
for i in range(25, len(numbers)):
possible = False
for numberPair in combinations(numbers[i-25:i], 2):
if sum(numberPair) == numbers[i]:
possible = True
break
if not possible:
print(numbers[i])
break

25
9/part2.py Normal file
View File

@ -0,0 +1,25 @@
from itertools import combinations
numbers = []
with open("input.txt") as f:
numbers = list(int(num) for num in f.read().split("\n"))
def getInvalidNumber():
for i in range(25, len(numbers)):
possible = False
for numberPair in combinations(numbers[i-25:i], 2):
if sum(numberPair) == numbers[i]:
possible = True
break
if not possible:
return numbers[i]
invalidNumber = getInvalidNumber()
found = False
for setSize in range(2, len(numbers)):
for setStart in range(0, len(numbers)-setSize, 1):
if sum(numbers[setStart:setStart+setSize]) == invalidNumber:
print(numbers[setStart] + numbers[setStart+setSize-1])
found = True
break
if found: break