Compare commits

...

2 Commits

Author SHA1 Message Date
BasGremmen 48ee934ca8 joe 2023-12-11 13:07:29 +01:00
BasGremmen ad2f6b05f7 updated 2023-12-10 13:19:05 +01:00
2 changed files with 291 additions and 367 deletions

View File

@ -1052,7 +1052,7 @@
},
{
"cell_type": "code",
"execution_count": 113,
"execution_count": 3,
"id": "464d8ac2-9511-4fed-bdaa-1ae234c0c1e9",
"metadata": {},
"outputs": [
@ -1062,7 +1062,7 @@
"(42, 8)"
]
},
"execution_count": 113,
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@ -1076,7 +1076,7 @@
},
{
"cell_type": "code",
"execution_count": 43,
"execution_count": 4,
"id": "0d3097b8-579b-4ae1-9c70-8dde061e9491",
"metadata": {},
"outputs": [],
@ -1091,23 +1091,24 @@
},
{
"cell_type": "code",
"execution_count": 91,
"execution_count": 9,
"id": "ea659734-4403-4dd5-9bef-af4716f36674",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"13676\n",
"6\n",
"13676\n",
"60\n"
]
"data": {
"text/plain": [
"6838.0"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"current_position = start_position\n",
"answers = []\n",
"for current_direction in [(1,0),(-1,0),(0,1),(0,-1)]:\n",
" current_position = start_position\n",
" steps = 0\n",
@ -1117,12 +1118,13 @@
" current_direction = get_next_direction(current_direction, data[current_position[0]][current_position[1]])\n",
" if data[current_position[0]][current_position[1]] == '.':\n",
" break\n",
" print(steps)"
" answers.append(steps)\n",
"max(answers)/2"
]
},
{
"cell_type": "code",
"execution_count": 159,
"execution_count": 15,
"id": "8ff1ec45-cec0-4a8a-9a7a-0ce278ee064d",
"metadata": {},
"outputs": [
@ -1132,200 +1134,173 @@
"text": [
"451\n"
]
},
}
],
"source": [
"current_position = start_position\n",
"current_pipe = 'X'\n",
"loop = [['.'] * len(line) for line in data]\n",
"current_direction = (1, 0)\n",
"\n",
"while current_pipe != 'S':\n",
" current_position = tuple(map(sum, zip(current_position, current_direction)))\n",
" current_pipe = data[current_position[0]][current_position[1]]\n",
" current_direction = get_next_direction(current_direction, current_pipe)\n",
" loop[current_position[0]][current_position[1]] = current_pipe\n",
"\n",
"\n",
"loop[42][8] = 'F'\n",
"total = 0\n",
"for line in loop:\n",
" in_loop = False\n",
" last = ''\n",
" for item in line:\n",
" if item in 'FL':\n",
" last = item\n",
" elif item in '||':\n",
" in_loop = not in_loop\n",
" elif item == '7' and last == 'L':\n",
" in_loop = not in_loop\n",
" last = item\n",
" elif item == 'J' and last == 'F':\n",
" in_loop = not in_loop\n",
" last = item\n",
"\n",
" if item == '.' and in_loop:\n",
" total += 1\n",
"print(total)\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "91ac3836-de08-4657-9459-7d4c20bb1a5c",
"metadata": {},
"source": [
"## Puzzel 11"
]
},
{
"cell_type": "markdown",
"id": "8a1b6307-042f-4337-86a8-74e47c78a465",
"metadata": {},
"source": [
"### Deel 1"
]
},
{
"cell_type": "code",
"execution_count": 114,
"id": "6bb3ddca-1658-45b8-ad18-dec10651a42a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[' ',\n",
" ' ',\n",
" ' ',\n",
" ' F7 ',\n",
" ' || ',\n",
" ' |L7 F7 F--7 F7 ',\n",
" ' L7L7F7|| L-7L7||F7 ',\n",
" ' F-7F7 F-7L7||||L7 L7||LJL7 ',\n",
" ' L7LJ| F7 L7| |LJLJFJ F-7FJ||F--J ',\n",
" ' F-JF-J |L7 F7 F-7F-JL7L-7F-J F7 L7LJFJ||F7F7 F7 ',\n",
" ' L-7| F-7|FJ |L7 L7|L--7L7FJL---7F-7 F-JL7F7F7 F--7F7L-7L7|||LJ| F7 FJL7 ',\n",
" ' F--J|FJFJ|| FJFJ F-JL7F7|FJL-7F--J|FJ F7 L--7LJ||L-7|F-J||F7|FJ|||F-J FJL-7|F-J ',\n",
" ' L--7||FJ ||F7L7|F7L--7||LJL7F-JL-7FJL7FJL--7 F7F7L7FJ|F-J||F-J||||L-J|||F7F7L-7FJ|| F7F-7 ',\n",
" ' F7 FJLJ|F7||||FJ|||F7FJ|L--7|L7F--JL7FJ|F-7FJF7FJLJL7|L-JL7 ||L-7|||L-7FJ|||||| FJL-J|FJ|L7| ',\n",
" ' |L7L--7||||LJ|L7LJ|||L7L7F7|L7|L-7F7||FJL7||FJ|L-7F-J|F--7L-JL-7||||F-J|FJLJLJL7L---7LJFJFJL-7 ',\n",
" ' F7 |FJF--JLJLJF7| L-7|||FJFJ||L7|L-7LJLJLJF-JLJL7| FJL7 LJF-JF7F-7||LJ|L-7|L7F----JF7F-JF-JFJF7FJ ',\n",
" ' ||FJ| L-7F7F--JLJF7FJ|||L7| || ||F7L-7F--7L-7 F7|L-JF-JF7 L--J|| |||F-JF7|| ||F7F7FJ|L-7|F-JFJLJ ',\n",
" ' |||FJF7 LJ||F--7FJ|L7LJL-JL7|L7|LJ|F7||F7L--JFJ||F-7|F7||F-7F7LJFJLJ|F7|||L-JLJLJ|L7L7 ||L7FJ ',\n",
" ' F7||||FJ|F--J|L7FJL7L7|F-----J|FJL7FJ||||||F7F7L7|LJ |||||||FJ|L7FJF-7||||||F--7F-7|FJFJFJL7||F7 F-7 ',\n",
" ' |LJ|||L7|L--7| |L-7L7||| F-7F-J|F7|L7|||LJLJLJL7|L7F-J||LJ||L7L7|L7|FJ||||||L-7LJ LJL7|FJF-J|LJL7 L7| ',\n",
" ' FJF7LJL7|| F-JL-JF-JFJ||L7|FJL-7|||L7LJLJF------J|FJL-7||F-JL7| |L7LJL7||||||F-J F7 F7|||FJF-JF--J ||F7 ',\n",
" ' L-JL7F7LJL7L----7| FJFJL7LJL7F7|LJL7L-7F-JF---7F7|L7F7||||F7 |L7L7L---JLJ|||||F-7|L7|||||| |F-JF7 FJLJ| ',\n",
" ' F--J|L-7FJF----JL7L7L7FJF--J||L7F-J FJL-7L7F7||LJFJ|||LJLJL7L7L7L------7LJ||||FJ|FJ|||||L-J|F7||F7F-7FJF--J ',\n",
" ' F7 L--7|F-JL7L----7FJ |FJL7L7F7|| ||F7FJF--JFJ|LJL-7L7||L--7F-JFJFJF-----7L-7LJ||L-JL7|||||F7FJ|||||||FJL7L7 ',\n",
" ' || F7LJL--7| F7F7||F-J|F7L7|||||FJ||||FJ F7L7|F7F-JFJ|L7F7|L-7L7L7L--7F7L--JF7LJF--7|||||||LJFJLJLJLJL7FJFJ ',\n",
" ' F-J| F7F-JL-7F--JL7|LJ||LJF-J|| |LJLJ|L7|||||F7|L7|LJ|L-7L7L7||LJF-J |FJF-7LJL----J|F-JF7LJ|||||L-7|F7F-----J|FJ ',\n",
" ' L-7|F7 ||L--7FJL---7|L-7|L-7|F-JL7L---7L7|LJLJLJ|L7||F-JF7L7L-J|L-7L7F7|L7|FJ F7 F7F7|L--JL7FJ||LJF-JLJ||F7F7 FJL-7 ',\n",
" ' F7 ||||FJL7F7|L7F---J|F-JL7FJLJF--JF7F7L7|L7F7F--JFJLJL7FJL-JF--JF7|FJ|LJFJ|L7FJL-J|||L7F---JL7||F-JF7 FJLJLJL-JF--JF7 ',\n",
" ' FJL-JLJ||F-J||L7LJF--7|L--7||F-7L--7|LJ|FJL-J||L7F7L7F--JL---7|F7FJ||L7|F7L7L7||F7F7LJ|FJL-7F7FJ||L-7||FJF-7F---7L---J| ',\n",
" ' |F7F7F7|||F7|| L7FJF-JL7F7|||| L---JL7FJL7F--JL-J|| |L7F7F--7|LJ|L7||FJLJL7|FJ|LJLJL-7||F7FJ||L7||F-J||L7L7|L--7|F----J ',\n",
" ' ||LJLJ|LJ||LJ|F7LJ L--7||||LJL--7F7 FJL7FJ|F7 F7||FJFJ|LJF-JL-7|FJ||L7F7 ||L7| F7F7FJ|LJ|L-JL7|LJL-7|L-JFJL---J|L---7 ',\n",
" ' LJF7 L-7|L7FJ||F7 F7FJLJ|L-7F--J||FJF-JL7||L7FJ||||FJ L-7| F--J||FJ|FJ|L7|L7|L7|LJ|L7L7FJF---J|F---JL7F7L----7 L----J ',\n",
" ' || F--JL7|L7|||L-J|L--7L7FJL-7FJ|L7|F7FJ||FJ|FJ|||L-7 FJL7L--7LJL7|| L7||FJ|FJL-7|FJFJL7| F7 ||F7F7FJ||F7F7FJF7F7F7 F7 ',\n",
" ' FJL7L---7|L7|||L--7|F--JFJL-7FJL7L-J|||L7LJL7||FJ||F-JFJF-JF-7L--7||L7FJ||L7|L7F-JLJFJ FJ|FJL7|||||LJFJLJLJLJFJLJLJL-7|| ',\n",
" ' L-7|F---JL-J|||F7FJ|L--7|F7 ||F7L-7FJ|| L-7FJ||L7|||F7|FJF7L7| F7|||FJL7||FJL7|L7F--JF7L7|L7FJ|LJ||F-J F7 F7 L7F----7LJL7 ',\n",
" ' F-J|L------7LJ|||L7L-7 |LJ|FJ|||F7||FJ|F7FJL7|L7|||LJ||L7||FJL7||||||F7|||L7FJL7|L7F7||FJL7||FJF-J|| F-JL-JL7FJL---7L---J ',\n",
" ' L-7L-------JF7LJL-JF7|FJF7||FJ|||||LJFJ|||F7||FJ|||F7|L7LJ|L7FJ|||||||||||FJL7O||FJ|||LJF7LJLJOL--JL-JF--7F-J|F----J F-7 ',\n",
" ' F-7 L7F-7F7F--JL--7F7|||L-J||||FJLJLJF-JFJ|LJ|||L7||LJ||FJF-JFJL-J||LJ||LJLJ|F-JFJ|L7|LJOFJL-------7F7F-JF7LJF-J|F7F7F7|FJ ',\n",
" ' L7| LJ LJLJ F-7F-J|LJ|L---JLJ|L-7F--JF7|FJF-JLJO||L7FJ|L7L-7|F---J|F-JL---7|L7OL7L7|L7F7L-7F-7F--7||||F-JL-7|F-J|||||||| ',\n",
" ' |L7F-7F7F7 FJFJL--J FJF7F---7L-7||F7FJ||L7L----7||O|L7L7|F-J|L7F-7|L7F7F7FJ|FJF7|FJ|FJ|L--JL7LJOFJLJLJL7F--J||F7|||||LJL-7 ',\n",
" ' |FJL7LJLJL7L7L-----7L-JLJ F7L7O||LJ|L7|L7L7F--7|LJFJFJFJ|L7FJFJ|O||OLJ|||L7|L-J||L7LJOL--7F-JF--J F7 F7||F7 |LJLJLJLJF---J ',\n",
" ' F7F-J|F7|F---7L-JF----7L7 F-7FJL-JFJL-7L7|L-JFJL-7||F7L7|OL7|FJ|FJFJFJL--7||L7|L7F7|L7L-7OF7FJ|F7L----JL7|||||L-JF7F---7FJF-7 ',\n",
" ' |LJF7|||LJF7 L---JF7F7L7L7|FJL--7OL7F-JFJL7F-JF7FJ|LJ|FJL7FJ|L7|L7|FJF-7FJ|L7LJO||LJO|F7L7||L7||L------7LJLJLJF7FJ|L-7 |L-JFJ ',\n",
" ' L--J|LJ|F7||F---7FJLJ| L7LJ|F7F-JF7LJF-JF7||F7||L7|F-J|F7|L7|O||FJ|L7L7|L7L7|F--J|OF7LJL-J||FJ||F-7F7F7L-7F-7FJLJFJF7|FJF7FJ ',\n",
" ' F-7FJF7LJLJ|L-7FJL--7L-7L-7LJLJF-JL7OL-7|LJ||||L7||L-7LJ|L7|L7LJL7|FJFJL7L7LJL7F7L-JL----7||L-JLJOLJLJL-7|L7|L--7L-JLJ|FJ|L7 ',\n",
" ' F7L7|L-JL---7|F7|| F--JF7L-7L----JF-7L7F7LJOFJ||L7||L7FJF-JFJL7|F--J||FJF7|FJOF7||L7F---7F7||L--7F7F------JL7||F--JF7F7 || L-J ',\n",
" 'F--J|FJ|F------JLJLJL-JF7FJ|F7L------JOL7LJL--7L7||FJ|L7||OL-7L-7LJL--7||L-J|||F-JLJL7||F--J|LJL--7|||L------7 LJLJF--JLJL7|L-7F7 ',\n",
" 'L--7|L7LJF------7F7F-7FJ|| LJL---------7|F---7|FJ|LJO|FJLJF--JF7L-7F--J|L7F-JLJ|F7F7FJLJL7F7L-7F--JLJL------7L--7F-JF7F---JL-7LJL-7 ',\n",
" 'F--JL-JF-JF7F--7LJLJ LJ LJF----7F------JLJF7FJ|L7L-7FJL--7L7F7||F7|L-7FJFJL-7F7|||||L---7LJ|F-JL-----7F----7L---J|F-JLJF----7|F7F-J ',\n",
" 'L7F7F--JF-J||F7L7 F7 F7 F7L---7LJF----7OF7||L-JOL7FJL7F7FJO||||||LJF-JL7L7F7LJ|||LJ|F7F7|F-J|F-------J|F---JF--7 || F7 L7F7FJ||LJ ',\n",
" ' LJ|L7F-JF7LJ|L7L-JL-JL-JL-7 FJF-JF--7L-JLJ|OF7OO|L-7||LJF7|||||L-7L-7FJO|||F-JLJOFJ|||LJL7FJL7F7F7F-7|L-7F7L7FJFJL-JL--J|LJ LJ ',\n",
" ' L-JL7FJL-7|FJF7F-7F-7F-7L-JFJF7L7OL7F7F7L-JL7FJF7||L7FJLJ|LJL--JOFJ|F-J||L-7OF7L7||L-7FJL7FJ|||||OLJF7LJL-JL-JF7F7F--7L7F7F----7 ',\n",
" ' ||F--J|L-J|L7||FJ| L-7FJFJL-JF7LJLJL-7F-JL-J|||FJL7F7L---7F--JFJL-7||F7|FJL-J|L7FJL7FJL-JLJLJF--JL------7FJLJ|L7 L7LJ||F---J ',\n",
" ' ||L--7| F7L7|LJL7|F--J| L----JL-7F7F7LJF-7F7||LJF-J||F7F7|L7F-JF--J|LJ||L7F-7|O||F-JL7OF7F7F7L---------7LJ F7L7L-7|F7LJL-7 ',\n",
" ' LJ LJFJ| LJF--J|L-7FJF---7F7F7LJLJL-7L7LJ||L-7L7FJ||LJLJOLJF7L7F7L-7||FJ|FJL7|||F7FJFJ||LJ|F7F---7F--J F-J| L7FJ|||F7F-J ',\n",
" ' F7L7|F7 L--7|F-J| L7F7LJLJL7F---7L-JF-JL-7|FJL7|L7OOOF--JL-J||F-JLJL-JL--JLJLJLJOL7|L-7|||L--7|L----JF7|F7LJ LJLJLJ ',\n",
" ' FJL-JLJ|F7F7LJL--JF7LJ|F---7||F7OL7F7L7F7OLJ|F-JL7L7F7L-7F7F-J|L---7F------7F7F-7F-JL--JLJL---J|F-----J|LJ|F--7F7F-7 ',\n",
" ' F-JF7F--7LJLJL------JL-7LJF-7|LJ|L-7|||FJ||F7O|L7OFJFJ|L--J||L7OL7F-7||F7F7F7LJLJFJL7F7F-7F---7F7LJF7 F-7|F7LJF7LJLJFJ ',\n",
" ' L--JLJF7L------------7FJ FJOLJOFJF7||||L-J||L7|FJFJFJOL7F7FJ|FJF-JL7||||LJLJL---7L-7LJLJOLJF7OLJ|F-JL7|FJLJ|F-JL-7F7L7 ',\n",
" ' F-----JL7F7 F-7 F7F7FJL-7L--7F7L7|LJLJL7F-J|FJLJOL7L--7LJ|L7||FJF7FJLJLJOF7F7OF-JF7L7F-7F7FJL--7LJF-7LJL-7 LJF7F7LJL7| ',\n",
" ' L7F----7LJL7L7|FJLJ|L7F7|F--J|L-JL----7LJOFJ|F7F7OL7F7|OOL-J||L7||L-7F---JLJL-JF7|L7|L7|||L---7L--JFJF7F-JF7FJLJL7F7LJ ',\n",
" ' LJ F7 L--7|FJLJF-7| ||LJL---JF-------JOF7|FJ|LJL7OLJLJOOOOOLJOLJL7FJ|F--------JLJFJL-JLJL--7OL---7L-J|L--JLJF--7LJL---7 ',\n",
" ' F7FJL----JLJF-7|FJ|FJL------7L--7F7F7OFJLJL-JF7FJOOOOOOOOOOOOOOOO|L7||F---------7L--------7|F----JF-7|F7F---JF7L------J ',\n",
" ' FJLJF-------7L7LJL7LJF7F----7|F7FJ|||L-JF-7F--JLJOOOOOOOOOOOOOOOOOL-JLJL7F-7F-7F7L---------JLJF---7|FJLJLJF---JL7 F--7 ',\n",
" ' L---JF------JFJ F7L7FJLJF7F-JLJ|L7|||F--JFJL---7OOOOOOOOOOOOOOOOOOOOOOF7LJFJL7||L7F-7F7F7F7F7FJF--J|L-7 F7|F-7F7L-JF7L-7 ',\n",
" ' F--7L---7F7FJ FJL7LJF--JLJF7F7L-J|LJL--7L7F7F7|F-7OOOOOOOOOOOOOOOOOOFJ|F7L--J||OLJOLJLJLJLJLJOL--7|F7L7|LJL7LJL---JL-7| ',\n",
" ' L-7L-7F-J|||F-JF7L--JF7F--JLJL7F7|F-7F7L7LJLJ|LJFJOOOOOOOOOOOOOOOOOOL7|||OF7OLJF-7F-7F7F-7F7F-7F7LJ|L-J|F--JF----7 F7LJ ',\n",
" ' F7L-7|L--JLJL--JL--7FJ||F-----J||||O|||FJOF7O|F-JOOOOOOOOOOOOOOOOOOOFJLJL-JL7F7L7|L7LJ|L7|||L7LJL7FJF7 |L---JF--7L-JL7 ',\n",
" ' F7FJL--J|F7F7F7F7F----J|FJ|L------JLJL7LJ|L--JL7LJF7F7OOOOOOOOOOOOOOOF-JF7F7F-7LJL-JL7L-7|FJLJL7L--7||FJL7|F----JF7L---7| ',\n",
" ' |LJF---7LJLJLJLJLJF----JL-J F7F7F7F7F7L-7L7F7F7|OO||||OF7OOOOOOOOOOOOL--JLJ||FJF7F-7FJF7|LJF--7L7F-JLJ|F-J||F----JL7F-7LJ ',\n",
" ' L-7|F7 L-7F-------JF7F7 F7F-JLJLJLJ|||F7L7LJLJLJOFJ||L-JL7OOOOOOOOOOOOF-7OOLJL7|LJFJ|FJLJF-JF-JFJL----JL--JLJF-----J|FJ ',\n",
" ' LJ|L---J| F---7F-JLJL-JLJF-----7OLJLJL-JF7F-7F7L7||F-7FJOOOOOOOOOF-7L7|OF7F7LJF7L7LJF-7|F-JF7L7OF7F-7F7F-7FJF7F--7|L7 ',\n",
" ' L7F---JFJF-7|L--7F--7F-JF7F--JF7F----7|||FJ||FJLJ|OLJOOOOOOOOOOL7|FJL-JLJ|F7||FJF7L7LJL7FJL7L-JLJ LJLJ |L-J||F-J|FJ ',\n",
" ' LJ F--JFJFJL7F7LJF7||F-JLJF7FJLJF7F7LJ||L-JLJF7FJF7OOOOOOOOOOOO||L-----7|||||L7||FJOF7LJF7L--------7F7|F7FJ|L--JL-7 ',\n",
" ' F---JF--J |F7LJ|F7||LJL----JLJF--JLJ|F7LJF-7F7|||O|L-7OOOOOOOOOO|L------JLJLJL7LJ||F-JL--JL---------J||LJ|L-JF7F7F7|F7F7 ',\n",
" ' F-JF---JF---J||F7LJLJL7F7F------JF7F-7LJL--JOLJLJLJFJF-JOOOOOOOOOFJF7F---------7L--J|L----7F7F7F-------JL-7L7F7|LJLJLJ|||| ',\n",
" ' L7FJ F-7L----JLJ|F7F-7LJ|L-7F7F--JLJFJOF-----7F7F--JFJOOOOOOOOOOOL-J||F-------7|F7F7|F----J|LJLJF7F------7L7LJLJF7F7F7|LJL---7 ',\n",
" ' ||F-JFJF-------J|LJ |F7L--J|LJF----JOFJF----J|LJF7FJOOOOOOOOOOOOOOOLJL------7LJ|||||L--7F7L7F--JLJF7F--7L7L--7FJLJLJ|L-7F---J ',\n",
" ' LJL-7L7L----7F-7|F--J|L----JF7L-----7L7|F-7F7|F-JLJOOOOOOOOOOOOOOOOOOF------JF7|LJLJF-7LJ|FJL---7 |LJF-J L7F-J|F7F7FJF-JL-7 ',\n",
" ' F7L7L----7|L7LJL7F7L7F----JL----7FJO|LJFJ|||L7F7F7OOOOOOOOOOOOOOOOOL---7F7FJ|L7F7OL7|F7LJF7F--JFJF7|F7F7|L7FJ|LJLJFJF---J ',\n",
" ' || L-7F-7LJFJ F7||L-JL--------7OLJOFJF7|FJLJFJ|LJL7OOOOOOOOOOOOOOOOOF--J|LJOL-J||F7||||F7||L---JFJLJ|LJ||FJL7L7F-7L7L-----7 ',\n",
" ' |L---J| L-7|F7|LJL7F----------JF7F7L7|LJ|F-7L-JF7FJF7OOOOOOOOOOOOOOFJF7FJF7F--7|||||LJLJLJL7F---JF7 |F-JLJF-JFJL7L-JF-----J ',\n",
" ' F7L-----JF7 LJ|LJF7FJL-7F-------7|LJ|FJL--JL7L7F7|LJFJL7OOOOOOOOF---7L-J||FJLJF7LJLJ||F-7F--7|L----JL7|L--7 L-7L--JF--JF7 ',\n",
" ' |L-------JL---JF7|||F7FJ|F------JL-7LJF7F-7FJFJ|||F7L7FJF7F7F7F7L--7|OOOLJL-7FJL---7LJL7LJF7|L--7F7F7||F--JF7FJF---JF-7|L7 ',\n",
" ' L----------7F-7|||LJ||L-J|F----7OF7|F-J|L7|L7L7|LJ|L7||FJ|||||||OF-JL7OF---7|L7OF7FJF--JF-JLJF-7LJLJLJ||F7 ||L7| F7 L7||FJ ',\n",
" ' F--7F------7LJ ||||F-JL---J|F---JFJLJL-7L-JL7L7LJF-JFJ|||FJ||||||OL--7L7L--7|L-JFJLJFJOF-JF7F7|FJF7 F7FJLJL-JL-JL7||F-JLJL-7F-7 ',\n",
" ' L-7|L-----7L---J|||L-------JL----JF---7L--7O|FJF7L-7L-J||L-J||LJ|F---JFJF-7|L7OFJF7FJF7L7FJ||LJL-J|FJLJF7F7F----7LJ||F-----J|FJ ',\n",
" ' F-JL7 F7F-JF7F7FJ||F---7F---7F-7F7L-7FJF--JFJ|O||F7L-7FJL7F-J|F-JL-7F7|FJFJ|FJFJFJ||FJ|OLJOLJF---7LJF-7|LJLJF-7FJF7LJL----7FJL7 ',\n",
" ' L7F7|FJLJF7|LJ|| ||L--7|L--7|L7|||F-JL-JF7OL-JFJ||L--J|F7||F7|L7F7OLJ|||FJFJL7L7L7LJL7L--7OF7L--7L-7L7|L7F7 |FJL7||F-7F--7LJF-J ',\n",
" ' FJ||LJF--JLJF-JL7LJF--JL---JL7|LJLJOF7OFJL-7F7L7|L-7F7LJ||LJLJFJ|L7OFJLJL7L-7L7L-JF-7L7F7L-JL---JF7|FJL7LJL-JL-7||||FJL-7L--J ',\n",
" ' L-JL-7L7F---JF-7L7FJF7F-----7LJF7F7FJL-JF--J||FJL7OLJ|F-JL-7F-JOL7L7L7F--JF7L7L7OFJFJFJ|L7F7F7F-7||LJ L----7F7|LJLJL-7FJF-7 ',\n",
" ' FJFJL---7| L-JL-J||F----JF7|LJLJF--7L--7|||F-JF7FJL7F7FJ|F7F7L7L7|L--7|L-JFJFJFJOL-JOLJLJLJOLJL-7 F7F7F7LJLJ F7F-7|L-JFJ ',\n",
" ' F7F7L7L-7F-7LJF7F7F--J|L-----JLJF7F7|F7L---J||||F7||L7FJ||L7|||||FJFJ|F--JL7F-JOL7|F7F7F7F7F-------7L7|||LJL-7F--JLJFJ|F-7L7 ',\n",
" ' F7|||| L--JL7|F7||||L---J F-------JLJLJ|L7F7F7||||||||FJ|FJL-JLJ||||FJFJL7F7FJL7F-7|||||||||||F7F---7L7LJLJF7F-JL7F---JFJ|FJFJ ',\n",
" ' |LJLJL-7F-7FJLJ|||||F7F7F7L----7OF7F-7FJFJ|||||||||LJLJFJL-----7||LJL7L7FJ||L7FJL7|||||||||||LJLJF--JFJF7F7||L-7FJL---7L7|L-J ',\n",
" ' L-----7||FJL7F7LJLJLJLJ|||F7F-7L-JLJFJL7|FJ||||LJ|L-7F-JF-7F--7||L-7FJO|L7|L7||OFJLJ||||LJ||L7OF7L--7L-JLJLJL-7LJF----J |L7F7 ',\n",
" ' F7FJLJ|F7LJ|F------7LJLJ|L7|F7F7FJF-JLJFJ|||F-JF7||OFJFJL-7||L-7||F7L7||FJ|L7L-7FJ|||F7LJFJFJL---J F------7|F7L----7 L7||| F7 ',\n",
" ' F7FJ|L-7FJ||F7LJF7F7F-JF7F7L-J||LJLJFJF---JFJ|||F7|LJL7L7|F--JLJF-J|LJ|O|LJL7L7L--J|O||LJL7FJOL-------JF7F--7|||L-----JF7LJ|L-JL7 ',\n",
" ' FJ|L7|F-J| |||| FJLJ|L--JLJL--7LJF7F7L7|F-7O|FJ||||L--7L-J|L----7L-7L7FJFJF--JOL--7FJFJL--7|L-7F-----7F7|||F7LJLJ F----7|L--JF---J ',\n",
" ' L7L-J|L-7L-JLJL7L--7L7F7F7 F--JOFJ||L7|||FJFJ|FJ|||OF-JF--JOF--7L-7L7|L7L7|F7F7F7O|L7L7F--JL7FJL----7||LJLJ|| F7F7|F---J|F---J ',\n",
" ' L--7|F7L-7F7F7L-7 L7LJLJL7L-7F-JFJ|FJ||||O|FJL7LJL7L-7L---7L-7|F7L7||FJFJLJ|||||FJFJFJL7OF7||F7OF7FJLJ F-7|L7|||LJL7F--JL----7 ',\n",
" ' F7F--J|||F-J|LJL-7|F-JF-7F7L--JL-7|FJL7||||FJL7FJF--JF7|F---JF-JLJL7||||OL7F7LJLJ|L7L7L-7L7||||||FJLJF7F7|FJ|FJ|||F--J|F--7F---J ',\n",
" ' F-JLJF-7|||L-7|F7F-J|L-7L7LJL7F-7OFJ||F-J|LJ|L-7|L7|F7O||||OF7OL----7||LJL7FJ|L7F--JOL7|F7|FJ|||LJ|L---JLJLJL7||FJLJL---JL-7|L---7 ',\n",
" ' L-7F7|FJLJL7 LJ|LJF7L--JFJF--J| L7L7LJL7FJF-JOFJL7|||L7|||L7|L-7F--7|||F--JL-JFJL7F7F7||||||FJ|L-7L7F7F--7F-7LJLJF7F-7F----J|F---J ',\n",
" ' LJLJL-7F-JF--JF7|L----J |F7FJF-JOL-7FJL7|OF7L7FJ||L7||||FJL7FJL7FJ||||F7F7F7L7FJ||||||||||L7|F7|FJ||L-7|L7|F7F-JLJFJL----7|L--7 ',\n",
" ' F7F7F7 F-JL--JF7FJ||F-----7LJLJFJF7F7FJL7FJL7||FJ|FJL7|||||L7FJL7FJ|FJ||||||||L7|L7|||LJ|||||FJ|||||FJ|F7|L7|LJ|L---7L7F7F--JL---J ',\n",
" ' |LJLJL-JF7F-7FJ|| ||L----7| F--JFJ||LJF-JL-7||LJ LJ FJ|||||FJ|F7||FJL7LJ||LJ||FJL7|||| FJ|LJ||FJ|||LJ LJ|L7LJF7L7F--JFJ||L------7 ',\n",
" ' L--7F7F7|LJFJL7||FJ|F--7FJL-JF7FJ |L-7L7F7FJ|L--7 F7L7|LJ||L7LJ|LJL-7L7FJL-7||L7FJ||||FJFJF-J|L7||L---7 L-JF-J|FJL--7L7||F7F7F7FJ ',\n",
" ' F7FJ|LJ|L7 L--JLJL7||F7LJF-7FJ|L-7|F7|FJ||L7|F--JFJL-JL-7LJ |F7L-7F7|FJL7F7||L7||FJ||||FJFJF7|FJ|L-7F-JF---JF-JL7F-7L7||LJLJLJLJ ',\n",
" 'F-JLJFJ FJFJF----7 FJ|LJL--J || L-7|||||L7||FJ|L-7 L7F7F7FJ F-J||F7||LJL-7||LJL7|||L7||||L7|FJ|||FJF-JL--JF---JF7FJL7|FJ|L----7 ',\n",
" 'L7F--J |FJFJF7F7L-JFJ F-----JL--7LJ||LJ |||| |F-JF-J||||L7FJF7|LJLJL7F--J|L--7|||L7LJLJ|FJ||FJ||L7L7F-7F7L----J|L7FJLJFJF7F--J ',\n",
" ' || F7FJL7L7||||F7FJF7L-7F7F7F7FJ FJ| F-J||L7LJF-JF7||||FJ|FJ|L--7F-JL-7FJF7FJ||L7|F---JL7||L7||FJ || LJL7F7F7FJ |L-7 L-JLJ ',\n",
" ' LJF-JLJF7|FJ|LJLJLJFJL-7LJ|||||L-7L7|FJF7|L7L-7|F7||||||L7|L7L7F-J|F7F7||FJLJFJL7|||F--7FJLJFJ|LJ FJL7F7FJ|LJLJF7|F7L----7 ',\n",
" ' L---7|LJL-J F7F--JF-7L--J||||F-J LJ|FJ|| |F-J||||LJ|||FJ|FJFJL-7LJ|||||L--7L--J||||F-JL-7 L7L-7FJF7LJ|L7L-7F7||LJL7F-7FJ ',\n",
" ' F--JL7 F---JLJF-7L7L7F7FJ||LJ F---J| LJFJL-7LJ|L7FJ|||FJ| |F-7L-7||||L7F-JF-7 LJ||L----JF7|F7|L-J|F-J |F7LJLJL--7LJ |L---7 ',\n",
" ' |F7F7L7|F-7F7FJFJFJFJ|||FJL--7L-7F7L-7FJF--JF7|FJL7|||L7L7|L7|F7|||LJFJL--JFJF7 LJF-----JLJ||L-7FJL--7LJ|F--7F--JF7FJF7F-J ',\n",
" ' LJLJ|FJ||FJ|||FJFJ L7|||L7F-7L7FJ||F7|L7L-7FJLJ|F7|||| L7||FJ||LJLJF-JF7F7FJ |L--7L--7F7F7FJ|F-JL7F--JF7|L-7|L---J|L7|LJ ',\n",
" ' F--J| LJL7|LJL-J LJ|| LJFJFJL7||||L7|F7|L7F7||LJ|LJF-J||L7|L---7|F7|LJ|L--JF7FJ F7LJ|||L7|L7F7|L---J||F-J|F7F7FJ LJ ',\n",
" ' |F--J FJ|F-7 F7 F--JL--7L-JF-J|||L-J||LJ ||LJL-7|F7L7FJ|FJ|F--7|||LJ FJF7F-J||F-JL--J||FJ|FJ|LJF7F-7||L-7||LJ|L-7 ',\n",
" ' LJ |FJL7L-JL7L-7F7F7L7F-JF7||L-7 LJ F-JL7F--J||L-JL7|L7|L-7LJLJF--JFJ|L-7||L-7F-7FJ|L7LJ L-7|LJ LJ|F7||L-7|F7| ',\n",
" ' || L7F-7L--J|LJ|FJL7FJ|||F7L-7F7L--7|L7F7|L7F--JL7|L7FJF--7L7F7| |F-J||F-JL7||FJFJF----JL---7FJ|LJL7FJLJLJ ',\n",
" ' LJ FJ|FJF7F7L-7|L7 || LJLJL7FJ|| F-JL7LJ||FJL---7LJ ||FJF7|FJ||L7|L7FJ|L7F7|LJL7L7|F---7F-7FJL7L--7|L-7 ',\n",
" ' |FJL7|LJL7FJL-JFJL---7F7|L7|L-JF-7|F-J|L-7F7FJF--JLJFJLJL7|L7||FJL7|FJ|LJ F-JFJLJ F-JL7LJF7L7F-J|F7L-7 ',\n",
" ' LJ || F7|L-7F-JF7F--J||L-J|F-7L7||L-7L7FJ||L7L7F7F7L7 F7|L7|||L-7LJL7L--7L--JF7F7L7F7L--J|FJL7FJ||F-J ',\n",
" ' FJ|FJLJF7||F7||L---JL-7FJ| |FJLJF7|FJL-J|FJ LJ||L7L7||L7|||L7FJ F-JF--J F7FJLJL-J||F--7|L7FJL7||| ',\n",
" ' L7||F-7|LJ|||||F-7F7F-J|FJFJL-7FJLJL---7|L7F--JL7L7LJ|FJ|LJ ||F-JF-JF---JLJF--7F7||L-7LJFJL-7|||| ',\n",
" ' LJ||FJL-7LJ|||L7||LJF-JL7L7F7|L--7F--7|L7||F7F7|FJF-JL7L7 LJL7FJ L-7F7F7|F-J||||F-JF7L---J||LJ ',\n",
" ' ||L-7FJF-J||FJ|L-7L-7FJ ||||F--JL-7LJFJ|||||||L7L--7L7L7 F-JL7 F7LJLJLJL7FJ|||L--JL---7 LJ ',\n",
" ' LJF-J|FJF7|LJ |F-J || |||||F7F7FJF7L7|LJ||||FJF--J L7L7 L-7FJF-JL-7 F---J|FJ||F--7F7F7| ',\n",
" ' L--JL-J|L7 || FJL7 LJLJ|||||L-JL7LJF-J|LJL7L-7 L7L7 LJ L-7F7L7L---7|L-J||F7LJLJLJ ',\n",
" ' FJFJ LJ L7FJ LJLJ|F7F-J |F-JF--JF-J L-J ||L7L----J|F--JLJL------7 ',\n",
" ' F-JFJ LJ F-J||| |L7 |F-7L7 LJ L-7F--7|L---7F-------J ',\n",
" ' L--J |F7|LJ L-J LJ L7| ||F-J|F---JL--7F7 F7 ',\n",
" ' ||LJ FJ| |||F-JL-7F7F7FJ|L-J| ',\n",
" ' F-JL7 L-J LJ||F---J||||L-JF7FJ ',\n",
" ' L---J LJL7F7FJ|||F--J|L7 ',\n",
" ' ||LJFJ||L--7L7L7 ',\n",
" ' LJF-JFJ|F7FJ L-J ',\n",
" ' L7FJ |||L--7 ',\n",
" ' LJ LJL---J ']"
"9605127"
]
},
"execution_count": 159,
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"current_position = start_position\n",
"loop = [[{'direction': (0,0), 'letter': '.'}] * len(line) for line in data]\n",
"current_direction = (1, 0)\n",
"steps = 0\n",
"while data[current_position[0]][current_position[1]] != 'S' or steps == 0:\n",
" current_position = (current_position[0] + current_direction[0], current_position[1] + current_direction[1])\n",
" current_direction = get_next_direction(current_direction, data[current_position[0]][current_position[1]])\n",
" letter = data[current_position[0]][current_position[1]]\n",
" loop[current_position[0]][current_position[1]] = {'letter': letter}\n",
" steps += 1\n",
"data = open('data/puzzle_11.txt', 'r').readlines()\n",
"data = [re.sub('\\n', '', line) for line in data]\n",
"\n",
"loop[42][8] = {'direction': (1, 0), 'letter': 'F'}\n",
"grid = []\n",
"total = 0\n",
"for line in loop:\n",
" row = \"\"\n",
" in_loop = False\n",
" last = ''\n",
" for item in line:\n",
" if item['letter'] in 'FL':\n",
" last = item['letter']\n",
" elif item['letter'] in '||':\n",
" in_loop = not in_loop\n",
" elif item['letter'] == '7' and last == 'L':\n",
" in_loop = not in_loop\n",
" last = item['letter']\n",
" elif item['letter'] == 'J' and last == 'F':\n",
" in_loop = not in_loop\n",
" last = item['letter']\n",
"new_data = []\n",
"# expand rows\n",
"for line in data:\n",
" if len(set(list(line))) == 1:\n",
" new_data.append(line)\n",
" new_data.append(line)\n",
"data = new_data\n",
"\n",
" if item['letter'] == '.' and in_loop:\n",
" row += 'O'\n",
" total += 1\n",
" elif item['letter'] != '.':\n",
" row += item['letter']\n",
"new_data = []\n",
"\n",
"# expand galaxy columns\n",
"for line in data:\n",
" new_line = \"\"\n",
" for i, value in enumerate(line):\n",
" if '#' not in [row[i] for row in data]:\n",
" new_line += '..'\n",
" else:\n",
" row += ' '\n",
" grid.append(row)\n",
" total += 1\n",
" new_line += value\n",
" new_data.append(new_line)\n",
"\n",
"print(total)\n",
"grid\n",
"\n"
"galaxies = []\n",
"for row_number, line in enumerate(new_data):\n",
" for col_number, value in enumerate(line):\n",
" if value == '#':\n",
" galaxies.append((row_number, col_number))\n",
"pairs = set([frozenset([galaxy_1, galaxy_2]) for galaxy_1 in galaxies for galaxy_2 in galaxies if galaxy_1 != galaxy_2])\n",
"distances = []\n",
"for galaxy_pair in pairs:\n",
" pair = list(galaxy_pair)\n",
"\n",
" x_diff = abs(pair[0][0] - pair[1][0])\n",
" y_diff = abs(pair[0][1] - pair[1][1])\n",
" distances.append(x_diff + y_diff)\n",
"sum(distances)\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 117,
"id": "21e469fc-c8be-414d-9c98-e5fc63da02ce",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"458191688761"
]
},
"execution_count": 117,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = open('data/puzzle_11.txt', 'r').readlines()\n",
"data = [re.sub('\\n', '', line) for line in data]\n",
"galaxies = []\n",
"for row_number, line in enumerate(data):\n",
" for col_number, value in enumerate(line):\n",
" if value == '#':\n",
" galaxies.append((row_number, col_number))\n",
"\n",
"expanded_rows = [i for i, line in enumerate(data) if \"#\" not in line]\n",
"expanded_cols = [i for i in range(len(data[0])) if '#' not in [row[i] for row in data]]\n",
"\n",
"pairs = set([frozenset([galaxy_1, galaxy_2]) for galaxy_1 in galaxies for galaxy_2 in galaxies if galaxy_1 != galaxy_2])\n",
"distances = []\n",
"for galaxy_pair in pairs:\n",
" pair = list(galaxy_pair)\n",
" x1, y1 = pair[0]\n",
" x2, y2 = pair[1]\n",
" x_diff = abs(x1-x2)\n",
" y_diff = abs(y1-y2)\n",
" \n",
" for expanded_row in expanded_rows:\n",
" if x2 < expanded_row < x1:\n",
" x_diff += 999999\n",
" if x1 < expanded_row < x2:\n",
" x_diff += 999999\n",
" for expanded_col in expanded_cols:\n",
" if y1 < expanded_col < y2:\n",
" y_diff += 999999\n",
" if y2 < expanded_col < y1:\n",
" y_diff += 999999\n",
" \n",
"\n",
" \n",
" distances.append(x_diff + y_diff)\n",
"sum(distances)"
]
}
],

View File

@ -702,6 +702,7 @@ def get_next_direction(current_direction, pipe):
```python
current_position = start_position
answers = []
for current_direction in [(1,0),(-1,0),(0,1),(0,-1)]:
current_position = start_position
steps = 0
@ -711,58 +712,51 @@ for current_direction in [(1,0),(-1,0),(0,1),(0,-1)]:
current_direction = get_next_direction(current_direction, data[current_position[0]][current_position[1]])
if data[current_position[0]][current_position[1]] == '.':
break
print(steps)
answers.append(steps)
max(answers)/2
```
13676
6
13676
60
6838.0
```python
current_position = start_position
loop = [[{'direction': (0,0), 'letter': '.'}] * len(line) for line in data]
current_pipe = 'X'
loop = [['.'] * len(line) for line in data]
current_direction = (1, 0)
steps = 0
while data[current_position[0]][current_position[1]] != 'S' or steps == 0:
current_position = (current_position[0] + current_direction[0], current_position[1] + current_direction[1])
current_direction = get_next_direction(current_direction, data[current_position[0]][current_position[1]])
letter = data[current_position[0]][current_position[1]]
loop[current_position[0]][current_position[1]] = {'letter': letter}
steps += 1
loop[42][8] = {'direction': (1, 0), 'letter': 'F'}
grid = []
while current_pipe != 'S':
current_position = tuple(map(sum, zip(current_position, current_direction)))
current_pipe = data[current_position[0]][current_position[1]]
current_direction = get_next_direction(current_direction, current_pipe)
loop[current_position[0]][current_position[1]] = current_pipe
loop[42][8] = 'F'
total = 0
for line in loop:
row = ""
in_loop = False
last = ''
for item in line:
if item['letter'] in 'FL':
last = item['letter']
elif item['letter'] in '||':
if item in 'FL':
last = item
elif item in '||':
in_loop = not in_loop
elif item['letter'] == '7' and last == 'L':
elif item == '7' and last == 'L':
in_loop = not in_loop
last = item['letter']
elif item['letter'] == 'J' and last == 'F':
last = item
elif item == 'J' and last == 'F':
in_loop = not in_loop
last = item['letter']
last = item
if item['letter'] == '.' and in_loop:
row += 'O'
if item == '.' and in_loop:
total += 1
elif item['letter'] != '.':
row += item['letter']
else:
row += ' '
grid.append(row)
print(total)
grid
```
@ -770,148 +764,103 @@ grid
451
## Puzzel 11
### Deel 1
```python
data = open('data/puzzle_11.txt', 'r').readlines()
data = [re.sub('\n', '', line) for line in data]
new_data = []
# expand rows
for line in data:
if len(set(list(line))) == 1:
new_data.append(line)
new_data.append(line)
data = new_data
new_data = []
# expand galaxy columns
for line in data:
new_line = ""
for i, value in enumerate(line):
if '#' not in [row[i] for row in data]:
new_line += '..'
else:
total += 1
new_line += value
new_data.append(new_line)
galaxies = []
for row_number, line in enumerate(new_data):
for col_number, value in enumerate(line):
if value == '#':
galaxies.append((row_number, col_number))
pairs = set([frozenset([galaxy_1, galaxy_2]) for galaxy_1 in galaxies for galaxy_2 in galaxies if galaxy_1 != galaxy_2])
distances = []
for galaxy_pair in pairs:
pair = list(galaxy_pair)
x_diff = abs(pair[0][0] - pair[1][0])
y_diff = abs(pair[0][1] - pair[1][1])
distances.append(x_diff + y_diff)
sum(distances)
```
[' ',
' ',
' ',
' F7 ',
' || ',
' |L7 F7 F--7 F7 ',
' L7L7F7|| L-7L7||F7 ',
' F-7F7 F-7L7||||L7 L7||LJL7 ',
' L7LJ| F7 L7| |LJLJFJ F-7FJ||F--J ',
' F-JF-J |L7 F7 F-7F-JL7L-7F-J F7 L7LJFJ||F7F7 F7 ',
' L-7| F-7|FJ |L7 L7|L--7L7FJL---7F-7 F-JL7F7F7 F--7F7L-7L7|||LJ| F7 FJL7 ',
' F--J|FJFJ|| FJFJ F-JL7F7|FJL-7F--J|FJ F7 L--7LJ||L-7|F-J||F7|FJ|||F-J FJL-7|F-J ',
' L--7||FJ ||F7L7|F7L--7||LJL7F-JL-7FJL7FJL--7 F7F7L7FJ|F-J||F-J||||L-J|||F7F7L-7FJ|| F7F-7 ',
' F7 FJLJ|F7||||FJ|||F7FJ|L--7|L7F--JL7FJ|F-7FJF7FJLJL7|L-JL7 ||L-7|||L-7FJ|||||| FJL-J|FJ|L7| ',
' |L7L--7||||LJ|L7LJ|||L7L7F7|L7|L-7F7||FJL7||FJ|L-7F-J|F--7L-JL-7||||F-J|FJLJLJL7L---7LJFJFJL-7 ',
' F7 |FJF--JLJLJF7| L-7|||FJFJ||L7|L-7LJLJLJF-JLJL7| FJL7 LJF-JF7F-7||LJ|L-7|L7F----JF7F-JF-JFJF7FJ ',
' ||FJ| L-7F7F--JLJF7FJ|||L7| || ||F7L-7F--7L-7 F7|L-JF-JF7 L--J|| |||F-JF7|| ||F7F7FJ|L-7|F-JFJLJ ',
' |||FJF7 LJ||F--7FJ|L7LJL-JL7|L7|LJ|F7||F7L--JFJ||F-7|F7||F-7F7LJFJLJ|F7|||L-JLJLJ|L7L7 ||L7FJ ',
' F7||||FJ|F--J|L7FJL7L7|F-----J|FJL7FJ||||||F7F7L7|LJ |||||||FJ|L7FJF-7||||||F--7F-7|FJFJFJL7||F7 F-7 ',
' |LJ|||L7|L--7| |L-7L7||| F-7F-J|F7|L7|||LJLJLJL7|L7F-J||LJ||L7L7|L7|FJ||||||L-7LJ LJL7|FJF-J|LJL7 L7| ',
' FJF7LJL7|| F-JL-JF-JFJ||L7|FJL-7|||L7LJLJF------J|FJL-7||F-JL7| |L7LJL7||||||F-J F7 F7|||FJF-JF--J ||F7 ',
' L-JL7F7LJL7L----7| FJFJL7LJL7F7|LJL7L-7F-JF---7F7|L7F7||||F7 |L7L7L---JLJ|||||F-7|L7|||||| |F-JF7 FJLJ| ',
' F--J|L-7FJF----JL7L7L7FJF--J||L7F-J FJL-7L7F7||LJFJ|||LJLJL7L7L7L------7LJ||||FJ|FJ|||||L-J|F7||F7F-7FJF--J ',
' F7 L--7|F-JL7L----7FJ |FJL7L7F7|| ||F7FJF--JFJ|LJL-7L7||L--7F-JFJFJF-----7L-7LJ||L-JL7|||||F7FJ|||||||FJL7L7 ',
' || F7LJL--7| F7F7||F-J|F7L7|||||FJ||||FJ F7L7|F7F-JFJ|L7F7|L-7L7L7L--7F7L--JF7LJF--7|||||||LJFJLJLJLJL7FJFJ ',
' F-J| F7F-JL-7F--JL7|LJ||LJF-J|| |LJLJ|L7|||||F7|L7|LJ|L-7L7L7||LJF-J |FJF-7LJL----J|F-JF7LJ|||||L-7|F7F-----J|FJ ',
' L-7|F7 ||L--7FJL---7|L-7|L-7|F-JL7L---7L7|LJLJLJ|L7||F-JF7L7L-J|L-7L7F7|L7|FJ F7 F7F7|L--JL7FJ||LJF-JLJ||F7F7 FJL-7 ',
' F7 ||||FJL7F7|L7F---J|F-JL7FJLJF--JF7F7L7|L7F7F--JFJLJL7FJL-JF--JF7|FJ|LJFJ|L7FJL-J|||L7F---JL7||F-JF7 FJLJLJL-JF--JF7 ',
' FJL-JLJ||F-J||L7LJF--7|L--7||F-7L--7|LJ|FJL-J||L7F7L7F--JL---7|F7FJ||L7|F7L7L7||F7F7LJ|FJL-7F7FJ||L-7||FJF-7F---7L---J| ',
' |F7F7F7|||F7|| L7FJF-JL7F7|||| L---JL7FJL7F--JL-J|| |L7F7F--7|LJ|L7||FJLJL7|FJ|LJLJL-7||F7FJ||L7||F-J||L7L7|L--7|F----J ',
' ||LJLJ|LJ||LJ|F7LJ L--7||||LJL--7F7 FJL7FJ|F7 F7||FJFJ|LJF-JL-7|FJ||L7F7 ||L7| F7F7FJ|LJ|L-JL7|LJL-7|L-JFJL---J|L---7 ',
' LJF7 L-7|L7FJ||F7 F7FJLJ|L-7F--J||FJF-JL7||L7FJ||||FJ L-7| F--J||FJ|FJ|L7|L7|L7|LJ|L7L7FJF---J|F---JL7F7L----7 L----J ',
' || F--JL7|L7|||L-J|L--7L7FJL-7FJ|L7|F7FJ||FJ|FJ|||L-7 FJL7L--7LJL7|| L7||FJ|FJL-7|FJFJL7| F7 ||F7F7FJ||F7F7FJF7F7F7 F7 ',
' FJL7L---7|L7|||L--7|F--JFJL-7FJL7L-J|||L7LJL7||FJ||F-JFJF-JF-7L--7||L7FJ||L7|L7F-JLJFJ FJ|FJL7|||||LJFJLJLJLJFJLJLJL-7|| ',
' L-7|F---JL-J|||F7FJ|L--7|F7 ||F7L-7FJ|| L-7FJ||L7|||F7|FJF7L7| F7|||FJL7||FJL7|L7F--JF7L7|L7FJ|LJ||F-J F7 F7 L7F----7LJL7 ',
' F-J|L------7LJ|||L7L-7 |LJ|FJ|||F7||FJ|F7FJL7|L7|||LJ||L7||FJL7||||||F7|||L7FJL7|L7F7||FJL7||FJF-J|| F-JL-JL7FJL---7L---J ',
' L-7L-------JF7LJL-JF7|FJF7||FJ|||||LJFJ|||F7||FJ|||F7|L7LJ|L7FJ|||||||||||FJL7O||FJ|||LJF7LJLJOL--JL-JF--7F-J|F----J F-7 ',
' F-7 L7F-7F7F--JL--7F7|||L-J||||FJLJLJF-JFJ|LJ|||L7||LJ||FJF-JFJL-J||LJ||LJLJ|F-JFJ|L7|LJOFJL-------7F7F-JF7LJF-J|F7F7F7|FJ ',
' L7| LJ LJLJ F-7F-J|LJ|L---JLJ|L-7F--JF7|FJF-JLJO||L7FJ|L7L-7|F---J|F-JL---7|L7OL7L7|L7F7L-7F-7F--7||||F-JL-7|F-J|||||||| ',
' |L7F-7F7F7 FJFJL--J FJF7F---7L-7||F7FJ||L7L----7||O|L7L7|F-J|L7F-7|L7F7F7FJ|FJF7|FJ|FJ|L--JL7LJOFJLJLJL7F--J||F7|||||LJL-7 ',
' |FJL7LJLJL7L7L-----7L-JLJ F7L7O||LJ|L7|L7L7F--7|LJFJFJFJ|L7FJFJ|O||OLJ|||L7|L-J||L7LJOL--7F-JF--J F7 F7||F7 |LJLJLJLJF---J ',
' F7F-J|F7|F---7L-JF----7L7 F-7FJL-JFJL-7L7|L-JFJL-7||F7L7|OL7|FJ|FJFJFJL--7||L7|L7F7|L7L-7OF7FJ|F7L----JL7|||||L-JF7F---7FJF-7 ',
' |LJF7|||LJF7 L---JF7F7L7L7|FJL--7OL7F-JFJL7F-JF7FJ|LJ|FJL7FJ|L7|L7|FJF-7FJ|L7LJO||LJO|F7L7||L7||L------7LJLJLJF7FJ|L-7 |L-JFJ ',
' L--J|LJ|F7||F---7FJLJ| L7LJ|F7F-JF7LJF-JF7||F7||L7|F-J|F7|L7|O||FJ|L7L7|L7L7|F--J|OF7LJL-J||FJ||F-7F7F7L-7F-7FJLJFJF7|FJF7FJ ',
' F-7FJF7LJLJ|L-7FJL--7L-7L-7LJLJF-JL7OL-7|LJ||||L7||L-7LJ|L7|L7LJL7|FJFJL7L7LJL7F7L-JL----7||L-JLJOLJLJL-7|L7|L--7L-JLJ|FJ|L7 ',
' F7L7|L-JL---7|F7|| F--JF7L-7L----JF-7L7F7LJOFJ||L7||L7FJF-JFJL7|F--J||FJF7|FJOF7||L7F---7F7||L--7F7F------JL7||F--JF7F7 || L-J ',
'F--J|FJ|F------JLJLJL-JF7FJ|F7L------JOL7LJL--7L7||FJ|L7||OL-7L-7LJL--7||L-J|||F-JLJL7||F--J|LJL--7|||L------7 LJLJF--JLJL7|L-7F7 ',
'L--7|L7LJF------7F7F-7FJ|| LJL---------7|F---7|FJ|LJO|FJLJF--JF7L-7F--J|L7F-JLJ|F7F7FJLJL7F7L-7F--JLJL------7L--7F-JF7F---JL-7LJL-7 ',
'F--JL-JF-JF7F--7LJLJ LJ LJF----7F------JLJF7FJ|L7L-7FJL--7L7F7||F7|L-7FJFJL-7F7|||||L---7LJ|F-JL-----7F----7L---J|F-JLJF----7|F7F-J ',
'L7F7F--JF-J||F7L7 F7 F7 F7L---7LJF----7OF7||L-JOL7FJL7F7FJO||||||LJF-JL7L7F7LJ|||LJ|F7F7|F-J|F-------J|F---JF--7 || F7 L7F7FJ||LJ ',
' LJ|L7F-JF7LJ|L7L-JL-JL-JL-7 FJF-JF--7L-JLJ|OF7OO|L-7||LJF7|||||L-7L-7FJO|||F-JLJOFJ|||LJL7FJL7F7F7F-7|L-7F7L7FJFJL-JL--J|LJ LJ ',
' L-JL7FJL-7|FJF7F-7F-7F-7L-JFJF7L7OL7F7F7L-JL7FJF7||L7FJLJ|LJL--JOFJ|F-J||L-7OF7L7||L-7FJL7FJ|||||OLJF7LJL-JL-JF7F7F--7L7F7F----7 ',
' ||F--J|L-J|L7||FJ| L-7FJFJL-JF7LJLJL-7F-JL-J|||FJL7F7L---7F--JFJL-7||F7|FJL-J|L7FJL7FJL-JLJLJF--JL------7FJLJ|L7 L7LJ||F---J ',
' ||L--7| F7L7|LJL7|F--J| L----JL-7F7F7LJF-7F7||LJF-J||F7F7|L7F-JF--J|LJ||L7F-7|O||F-JL7OF7F7F7L---------7LJ F7L7L-7|F7LJL-7 ',
' LJ LJFJ| LJF--J|L-7FJF---7F7F7LJLJL-7L7LJ||L-7L7FJ||LJLJOLJF7L7F7L-7||FJ|FJL7|||F7FJFJ||LJ|F7F---7F--J F-J| L7FJ|||F7F-J ',
' F7L7|F7 L--7|F-J| L7F7LJLJL7F---7L-JF-JL-7|FJL7|L7OOOF--JL-J||F-JLJL-JL--JLJLJLJOL7|L-7|||L--7|L----JF7|F7LJ LJLJLJ ',
' FJL-JLJ|F7F7LJL--JF7LJ|F---7||F7OL7F7L7F7OLJ|F-JL7L7F7L-7F7F-J|L---7F------7F7F-7F-JL--JLJL---J|F-----J|LJ|F--7F7F-7 ',
' F-JF7F--7LJLJL------JL-7LJF-7|LJ|L-7|||FJ||F7O|L7OFJFJ|L--J||L7OL7F-7||F7F7F7LJLJFJL7F7F-7F---7F7LJF7 F-7|F7LJF7LJLJFJ ',
' L--JLJF7L------------7FJ FJOLJOFJF7||||L-J||L7|FJFJFJOL7F7FJ|FJF-JL7||||LJLJL---7L-7LJLJOLJF7OLJ|F-JL7|FJLJ|F-JL-7F7L7 ',
' F-----JL7F7 F-7 F7F7FJL-7L--7F7L7|LJLJL7F-J|FJLJOL7L--7LJ|L7||FJF7FJLJLJOF7F7OF-JF7L7F-7F7FJL--7LJF-7LJL-7 LJF7F7LJL7| ',
' L7F----7LJL7L7|FJLJ|L7F7|F--J|L-JL----7LJOFJ|F7F7OL7F7|OOL-J||L7||L-7F---JLJL-JF7|L7|L7|||L---7L--JFJF7F-JF7FJLJL7F7LJ ',
' LJ F7 L--7|FJLJF-7| ||LJL---JF-------JOF7|FJ|LJL7OLJLJOOOOOLJOLJL7FJ|F--------JLJFJL-JLJL--7OL---7L-J|L--JLJF--7LJL---7 ',
' F7FJL----JLJF-7|FJ|FJL------7L--7F7F7OFJLJL-JF7FJOOOOOOOOOOOOOOOO|L7||F---------7L--------7|F----JF-7|F7F---JF7L------J ',
' FJLJF-------7L7LJL7LJF7F----7|F7FJ|||L-JF-7F--JLJOOOOOOOOOOOOOOOOOL-JLJL7F-7F-7F7L---------JLJF---7|FJLJLJF---JL7 F--7 ',
' L---JF------JFJ F7L7FJLJF7F-JLJ|L7|||F--JFJL---7OOOOOOOOOOOOOOOOOOOOOOF7LJFJL7||L7F-7F7F7F7F7FJF--J|L-7 F7|F-7F7L-JF7L-7 ',
' F--7L---7F7FJ FJL7LJF--JLJF7F7L-J|LJL--7L7F7F7|F-7OOOOOOOOOOOOOOOOOOFJ|F7L--J||OLJOLJLJLJLJLJOL--7|F7L7|LJL7LJL---JL-7| ',
' L-7L-7F-J|||F-JF7L--JF7F--JLJL7F7|F-7F7L7LJLJ|LJFJOOOOOOOOOOOOOOOOOOL7|||OF7OLJF-7F-7F7F-7F7F-7F7LJ|L-J|F--JF----7 F7LJ ',
' F7L-7|L--JLJL--JL--7FJ||F-----J||||O|||FJOF7O|F-JOOOOOOOOOOOOOOOOOOOFJLJL-JL7F7L7|L7LJ|L7|||L7LJL7FJF7 |L---JF--7L-JL7 ',
' F7FJL--J|F7F7F7F7F----J|FJ|L------JLJL7LJ|L--JL7LJF7F7OOOOOOOOOOOOOOOF-JF7F7F-7LJL-JL7L-7|FJLJL7L--7||FJL7|F----JF7L---7| ',
' |LJF---7LJLJLJLJLJF----JL-J F7F7F7F7F7L-7L7F7F7|OO||||OF7OOOOOOOOOOOOL--JLJ||FJF7F-7FJF7|LJF--7L7F-JLJ|F-J||F----JL7F-7LJ ',
' L-7|F7 L-7F-------JF7F7 F7F-JLJLJLJ|||F7L7LJLJLJOFJ||L-JL7OOOOOOOOOOOOF-7OOLJL7|LJFJ|FJLJF-JF-JFJL----JL--JLJF-----J|FJ ',
' LJ|L---J| F---7F-JLJL-JLJF-----7OLJLJL-JF7F-7F7L7||F-7FJOOOOOOOOOF-7L7|OF7F7LJF7L7LJF-7|F-JF7L7OF7F-7F7F-7FJF7F--7|L7 ',
' L7F---JFJF-7|L--7F--7F-JF7F--JF7F----7|||FJ||FJLJ|OLJOOOOOOOOOOL7|FJL-JLJ|F7||FJF7L7LJL7FJL7L-JLJ LJLJ |L-J||F-J|FJ ',
' LJ F--JFJFJL7F7LJF7||F-JLJF7FJLJF7F7LJ||L-JLJF7FJF7OOOOOOOOOOOO||L-----7|||||L7||FJOF7LJF7L--------7F7|F7FJ|L--JL-7 ',
' F---JF--J |F7LJ|F7||LJL----JLJF--JLJ|F7LJF-7F7|||O|L-7OOOOOOOOOO|L------JLJLJL7LJ||F-JL--JL---------J||LJ|L-JF7F7F7|F7F7 ',
' F-JF---JF---J||F7LJLJL7F7F------JF7F-7LJL--JOLJLJLJFJF-JOOOOOOOOOFJF7F---------7L--J|L----7F7F7F-------JL-7L7F7|LJLJLJ|||| ',
' L7FJ F-7L----JLJ|F7F-7LJ|L-7F7F--JLJFJOF-----7F7F--JFJOOOOOOOOOOOL-J||F-------7|F7F7|F----J|LJLJF7F------7L7LJLJF7F7F7|LJL---7 ',
' ||F-JFJF-------J|LJ |F7L--J|LJF----JOFJF----J|LJF7FJOOOOOOOOOOOOOOOLJL------7LJ|||||L--7F7L7F--JLJF7F--7L7L--7FJLJLJ|L-7F---J ',
' LJL-7L7L----7F-7|F--J|L----JF7L-----7L7|F-7F7|F-JLJOOOOOOOOOOOOOOOOOOF------JF7|LJLJF-7LJ|FJL---7 |LJF-J L7F-J|F7F7FJF-JL-7 ',
' F7L7L----7|L7LJL7F7L7F----JL----7FJO|LJFJ|||L7F7F7OOOOOOOOOOOOOOOOOL---7F7FJ|L7F7OL7|F7LJF7F--JFJF7|F7F7|L7FJ|LJLJFJF---J ',
' || L-7F-7LJFJ F7||L-JL--------7OLJOFJF7|FJLJFJ|LJL7OOOOOOOOOOOOOOOOOF--J|LJOL-J||F7||||F7||L---JFJLJ|LJ||FJL7L7F-7L7L-----7 ',
' |L---J| L-7|F7|LJL7F----------JF7F7L7|LJ|F-7L-JF7FJF7OOOOOOOOOOOOOOFJF7FJF7F--7|||||LJLJLJL7F---JF7 |F-JLJF-JFJL7L-JF-----J ',
' F7L-----JF7 LJ|LJF7FJL-7F-------7|LJ|FJL--JL7L7F7|LJFJL7OOOOOOOOF---7L-J||FJLJF7LJLJ||F-7F--7|L----JL7|L--7 L-7L--JF--JF7 ',
' |L-------JL---JF7|||F7FJ|F------JL-7LJF7F-7FJFJ|||F7L7FJF7F7F7F7L--7|OOOLJL-7FJL---7LJL7LJF7|L--7F7F7||F--JF7FJF---JF-7|L7 ',
' L----------7F-7|||LJ||L-J|F----7OF7|F-J|L7|L7L7|LJ|L7||FJ|||||||OF-JL7OF---7|L7OF7FJF--JF-JLJF-7LJLJLJ||F7 ||L7| F7 L7||FJ ',
' F--7F------7LJ ||||F-JL---J|F---JFJLJL-7L-JL7L7LJF-JFJ|||FJ||||||OL--7L7L--7|L-JFJLJFJOF-JF7F7|FJF7 F7FJLJL-JL-JL7||F-JLJL-7F-7 ',
' L-7|L-----7L---J|||L-------JL----JF---7L--7O|FJF7L-7L-J||L-J||LJ|F---JFJF-7|L7OFJF7FJF7L7FJ||LJL-J|FJLJF7F7F----7LJ||F-----J|FJ ',
' F-JL7 F7F-JF7F7FJ||F---7F---7F-7F7L-7FJF--JFJ|O||F7L-7FJL7F-J|F-JL-7F7|FJFJ|FJFJFJ||FJ|OLJOLJF---7LJF-7|LJLJF-7FJF7LJL----7FJL7 ',
' L7F7|FJLJF7|LJ|| ||L--7|L--7|L7|||F-JL-JF7OL-JFJ||L--J|F7||F7|L7F7OLJ|||FJFJL7L7L7LJL7L--7OF7L--7L-7L7|L7F7 |FJL7||F-7F--7LJF-J ',
' FJ||LJF--JLJF-JL7LJF--JL---JL7|LJLJOF7OFJL-7F7L7|L-7F7LJ||LJLJFJ|L7OFJLJL7L-7L7L-JF-7L7F7L-JL---JF7|FJL7LJL-JL-7||||FJL-7L--J ',
' L-JL-7L7F---JF-7L7FJF7F-----7LJF7F7FJL-JF--J||FJL7OLJ|F-JL-7F-JOL7L7L7F--JF7L7L7OFJFJFJ|L7F7F7F-7||LJ L----7F7|LJLJL-7FJF-7 ',
' FJFJL---7| L-JL-J||F----JF7|LJLJF--7L--7|||F-JF7FJL7F7FJ|F7F7L7L7|L--7|L-JFJFJFJOL-JOLJLJLJOLJL-7 F7F7F7LJLJ F7F-7|L-JFJ ',
' F7F7L7L-7F-7LJF7F7F--J|L-----JLJF7F7|F7L---J||||F7||L7FJ||L7|||||FJFJ|F--JL7F-JOL7|F7F7F7F7F-------7L7|||LJL-7F--JLJFJ|F-7L7 ',
' F7|||| L--JL7|F7||||L---J F-------JLJLJ|L7F7F7||||||||FJ|FJL-JLJ||||FJFJL7F7FJL7F-7|||||||||||F7F---7L7LJLJF7F-JL7F---JFJ|FJFJ ',
' |LJLJL-7F-7FJLJ|||||F7F7F7L----7OF7F-7FJFJ|||||||||LJLJFJL-----7||LJL7L7FJ||L7FJL7|||||||||||LJLJF--JFJF7F7||L-7FJL---7L7|L-J ',
' L-----7||FJL7F7LJLJLJLJ|||F7F-7L-JLJFJL7|FJ||||LJ|L-7F-JF-7F--7||L-7FJO|L7|L7||OFJLJ||||LJ||L7OF7L--7L-JLJLJL-7LJF----J |L7F7 ',
' F7FJLJ|F7LJ|F------7LJLJ|L7|F7F7FJF-JLJFJ|||F-JF7||OFJFJL-7||L-7||F7L7||FJ|L7L-7FJ|||F7LJFJFJL---J F------7|F7L----7 L7||| F7 ',
' F7FJ|L-7FJ||F7LJF7F7F-JF7F7L-J||LJLJFJF---JFJ|||F7|LJL7L7|F--JLJF-J|LJ|O|LJL7L7L--J|O||LJL7FJOL-------JF7F--7|||L-----JF7LJ|L-JL7 ',
' FJ|L7|F-J| |||| FJLJ|L--JLJL--7LJF7F7L7|F-7O|FJ||||L--7L-J|L----7L-7L7FJFJF--JOL--7FJFJL--7|L-7F-----7F7|||F7LJLJ F----7|L--JF---J ',
' L7L-J|L-7L-JLJL7L--7L7F7F7 F--JOFJ||L7|||FJFJ|FJ|||OF-JF--JOF--7L-7L7|L7L7|F7F7F7O|L7L7F--JL7FJL----7||LJLJ|| F7F7|F---J|F---J ',
' L--7|F7L-7F7F7L-7 L7LJLJL7L-7F-JFJ|FJ||||O|FJL7LJL7L-7L---7L-7|F7L7||FJFJLJ|||||FJFJFJL7OF7||F7OF7FJLJ F-7|L7|||LJL7F--JL----7 ',
' F7F--J|||F-J|LJL-7|F-JF-7F7L--JL-7|FJL7||||FJL7FJF--JF7|F---JF-JLJL7||||OL7F7LJLJ|L7L7L-7L7||||||FJLJF7F7|FJ|FJ|||F--J|F--7F---J ',
' F-JLJF-7|||L-7|F7F-J|L-7L7LJL7F-7OFJ||F-J|LJ|L-7|L7|F7O||||OF7OL----7||LJL7FJ|L7F--JOL7|F7|FJ|||LJ|L---JLJLJL7||FJLJL---JL-7|L---7 ',
' L-7F7|FJLJL7 LJ|LJF7L--JFJF--J| L7L7LJL7FJF-JOFJL7|||L7|||L7|L-7F--7|||F--JL-JFJL7F7F7||||||FJ|L-7L7F7F--7F-7LJLJF7F-7F----J|F---J ',
' LJLJL-7F-JF--JF7|L----J |F7FJF-JOL-7FJL7|OF7L7FJ||L7||||FJL7FJL7FJ||||F7F7F7L7FJ||||||||||L7|F7|FJ||L-7|L7|F7F-JLJFJL----7|L--7 ',
' F7F7F7 F-JL--JF7FJ||F-----7LJLJFJF7F7FJL7FJL7||FJ|FJL7|||||L7FJL7FJ|FJ||||||||L7|L7|||LJ|||||FJ|||||FJ|F7|L7|LJ|L---7L7F7F--JL---J ',
' |LJLJL-JF7F-7FJ|| ||L----7| F--JFJ||LJF-JL-7||LJ LJ FJ|||||FJ|F7||FJL7LJ||LJ||FJL7|||| FJ|LJ||FJ|||LJ LJ|L7LJF7L7F--JFJ||L------7 ',
' L--7F7F7|LJFJL7||FJ|F--7FJL-JF7FJ |L-7L7F7FJ|L--7 F7L7|LJ||L7LJ|LJL-7L7FJL-7||L7FJ||||FJFJF-J|L7||L---7 L-JF-J|FJL--7L7||F7F7F7FJ ',
' F7FJ|LJ|L7 L--JLJL7||F7LJF-7FJ|L-7|F7|FJ||L7|F--JFJL-JL-7LJ |F7L-7F7|FJL7F7||L7||FJ||||FJFJF7|FJ|L-7F-JF---JF-JL7F-7L7||LJLJLJLJ ',
'F-JLJFJ FJFJF----7 FJ|LJL--J || L-7|||||L7||FJ|L-7 L7F7F7FJ F-J||F7||LJL-7||LJL7|||L7||||L7|FJ|||FJF-JL--JF---JF7FJL7|FJ|L----7 ',
'L7F--J |FJFJF7F7L-JFJ F-----JL--7LJ||LJ |||| |F-JF-J||||L7FJF7|LJLJL7F--J|L--7|||L7LJLJ|FJ||FJ||L7L7F-7F7L----J|L7FJLJFJF7F--J ',
' || F7FJL7L7||||F7FJF7L-7F7F7F7FJ FJ| F-J||L7LJF-JF7||||FJ|FJ|L--7F-JL-7FJF7FJ||L7|F---JL7||L7||FJ || LJL7F7F7FJ |L-7 L-JLJ ',
' LJF-JLJF7|FJ|LJLJLJFJL-7LJ|||||L-7L7|FJF7|L7L-7|F7||||||L7|L7L7F-J|F7F7||FJLJFJL7|||F--7FJLJFJ|LJ FJL7F7FJ|LJLJF7|F7L----7 ',
' L---7|LJL-J F7F--JF-7L--J||||F-J LJ|FJ|| |F-J||||LJ|||FJ|FJFJL-7LJ|||||L--7L--J||||F-JL-7 L7L-7FJF7LJ|L7L-7F7||LJL7F-7FJ ',
' F--JL7 F---JLJF-7L7L7F7FJ||LJ F---J| LJFJL-7LJ|L7FJ|||FJ| |F-7L-7||||L7F-JF-7 LJ||L----JF7|F7|L-J|F-J |F7LJLJL--7LJ |L---7 ',
' |F7F7L7|F-7F7FJFJFJFJ|||FJL--7L-7F7L-7FJF--JF7|FJL7|||L7L7|L7|F7|||LJFJL--JFJF7 LJF-----JLJ||L-7FJL--7LJ|F--7F--JF7FJF7F-J ',
' LJLJ|FJ||FJ|||FJFJ L7|||L7F-7L7FJ||F7|L7L-7FJLJ|F7|||| L7||FJ||LJLJF-JF7F7FJ |L--7L--7F7F7FJ|F-JL7F--JF7|L-7|L---J|L7|LJ ',
' F--J| LJL7|LJL-J LJ|| LJFJFJL7||||L7|F7|L7F7||LJ|LJF-J||L7|L---7|F7|LJ|L--JF7FJ F7LJ|||L7|L7F7|L---J||F-J|F7F7FJ LJ ',
' |F--J FJ|F-7 F7 F--JL--7L-JF-J|||L-J||LJ ||LJL-7|F7L7FJ|FJ|F--7|||LJ FJF7F-J||F-JL--J||FJ|FJ|LJF7F-7||L-7||LJ|L-7 ',
' LJ |FJL7L-JL7L-7F7F7L7F-JF7||L-7 LJ F-JL7F--J||L-JL7|L7|L-7LJLJF--JFJ|L-7||L-7F-7FJ|L7LJ L-7|LJ LJ|F7||L-7|F7| ',
' || L7F-7L--J|LJ|FJL7FJ|||F7L-7F7L--7|L7F7|L7F--JL7|L7FJF--7L7F7| |F-J||F-JL7||FJFJF----JL---7FJ|LJL7FJLJLJ ',
' LJ FJ|FJF7F7L-7|L7 || LJLJL7FJ|| F-JL7LJ||FJL---7LJ ||FJF7|FJ||L7|L7FJ|L7F7|LJL7L7|F---7F-7FJL7L--7|L-7 ',
' |FJL7|LJL7FJL-JFJL---7F7|L7|L-JF-7|F-J|L-7F7FJF--JLJFJLJL7|L7||FJL7|FJ|LJ F-JFJLJ F-JL7LJF7L7F-J|F7L-7 ',
' LJ || F7|L-7F-JF7F--J||L-J|F-7L7||L-7L7FJ||L7L7F7F7L7 F7|L7|||L-7LJL7L--7L--JF7F7L7F7L--J|FJL7FJ||F-J ',
' FJ|FJLJF7||F7||L---JL-7FJ| |FJLJF7|FJL-J|FJ LJ||L7L7||L7|||L7FJ F-JF--J F7FJLJL-J||F--7|L7FJL7||| ',
' L7||F-7|LJ|||||F-7F7F-J|FJFJL-7FJLJL---7|L7F--JL7L7LJ|FJ|LJ ||F-JF-JF---JLJF--7F7||L-7LJFJL-7|||| ',
' LJ||FJL-7LJ|||L7||LJF-JL7L7F7|L--7F--7|L7||F7F7|FJF-JL7L7 LJL7FJ L-7F7F7|F-J||||F-JF7L---J||LJ ',
' ||L-7FJF-J||FJ|L-7L-7FJ ||||F--JL-7LJFJ|||||||L7L--7L7L7 F-JL7 F7LJLJLJL7FJ|||L--JL---7 LJ ',
' LJF-J|FJF7|LJ |F-J || |||||F7F7FJF7L7|LJ||||FJF--J L7L7 L-7FJF-JL-7 F---J|FJ||F--7F7F7| ',
' L--JL-J|L7 || FJL7 LJLJ|||||L-JL7LJF-J|LJL7L-7 L7L7 LJ L-7F7L7L---7|L-J||F7LJLJLJ ',
' FJFJ LJ L7FJ LJLJ|F7F-J |F-JF--JF-J L-J ||L7L----J|F--JLJL------7 ',
' F-JFJ LJ F-J||| |L7 |F-7L7 LJ L-7F--7|L---7F-------J ',
' L--J |F7|LJ L-J LJ L7| ||F-J|F---JL--7F7 F7 ',
' ||LJ FJ| |||F-JL-7F7F7FJ|L-J| ',
' F-JL7 L-J LJ||F---J||||L-JF7FJ ',
' L---J LJL7F7FJ|||F--J|L7 ',
' ||LJFJ||L--7L7L7 ',
' LJF-JFJ|F7FJ L-J ',
' L7FJ |||L--7 ',
' LJ LJL---J ']
9605127
```python
data = open('data/puzzle_11.txt', 'r').readlines()
data = [re.sub('\n', '', line) for line in data]
galaxies = []
for row_number, line in enumerate(data):
for col_number, value in enumerate(line):
if value == '#':
galaxies.append((row_number, col_number))
expanded_rows = [i for i, line in enumerate(data) if "#" not in line]
expanded_cols = [i for i in range(len(data[0])) if '#' not in [row[i] for row in data]]
pairs = set([frozenset([galaxy_1, galaxy_2]) for galaxy_1 in galaxies for galaxy_2 in galaxies if galaxy_1 != galaxy_2])
distances = []
for galaxy_pair in pairs:
pair = list(galaxy_pair)
x1, y1 = pair[0]
x2, y2 = pair[1]
x_diff = abs(x1-x2)
y_diff = abs(y1-y2)
for expanded_row in expanded_rows:
if x2 < expanded_row < x1:
x_diff += 999999
if x1 < expanded_row < x2:
x_diff += 999999
for expanded_col in expanded_cols:
if y1 < expanded_col < y2:
y_diff += 999999
if y2 < expanded_col < y1:
y_diff += 999999
distances.append(x_diff + y_diff)
sum(distances)
```
458191688761