Compare commits
No commits in common. "ef539ad5cb4a475688ce921a2f49463a2ff6719a" and "02110dfaeb4cce1849768b309f1e11b4e6de0d3c" have entirely different histories.
ef539ad5cb
...
02110dfaeb
100 changed files with 0 additions and 19248 deletions
|
|
@ -1,64 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
class Direction(enum.Enum):
|
|
||||||
NORTH = Point(-1, 0)
|
|
||||||
EAST = Point(0, 1)
|
|
||||||
SOUTH = Point(1, 0)
|
|
||||||
WEST = Point(0, -1)
|
|
||||||
|
|
||||||
def left(self) -> "Direction":
|
|
||||||
match self:
|
|
||||||
case Direction.NORTH:
|
|
||||||
return Direction.WEST
|
|
||||||
case Direction.EAST:
|
|
||||||
return Direction.NORTH
|
|
||||||
case Direction.SOUTH:
|
|
||||||
return Direction.EAST
|
|
||||||
case Direction.WEST:
|
|
||||||
return Direction.SOUTH
|
|
||||||
|
|
||||||
def right(self) -> "Direction":
|
|
||||||
match self:
|
|
||||||
case Direction.NORTH:
|
|
||||||
return Direction.EAST
|
|
||||||
case Direction.EAST:
|
|
||||||
return Direction.SOUTH
|
|
||||||
case Direction.SOUTH:
|
|
||||||
return Direction.WEST
|
|
||||||
case Direction.WEST:
|
|
||||||
return Direction.NORTH
|
|
||||||
|
|
||||||
def apply(self, p: Point, n: int = 1) -> Point:
|
|
||||||
dx, dy = self.value
|
|
||||||
return Point(p.x + dx * n, p.y + dy * n)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[tuple[str, int]]:
|
|
||||||
return [((line[0]), int(line[1:])) for line in input.split(", ")]
|
|
||||||
|
|
||||||
pos, dir = Point(0, 0), Direction.NORTH
|
|
||||||
directions = parse(input)
|
|
||||||
for turn, length in directions:
|
|
||||||
dir = dir.left() if turn == "L" else dir.right()
|
|
||||||
pos = dir.apply(pos, length)
|
|
||||||
return abs(pos.x) + abs(pos.y)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
R1, R1, R3, R1, R1, L2, R5, L2, R5, R1, R4, L2, R3, L3, R4, L5, R4, R4, R1, L5, L4, R5, R3, L1, R4, R3, L2, L1, R3, L4, R3, L2, R5, R190, R3, R5, L5, L1, R54, L3, L4, L1, R4, R1, R3, L1, L1, R2, L2, R2, R5, L3, R4, R76, L3, R4, R191, R5, R5, L5, L4, L5, L3, R1, R3, R2, L2, L2, L4, L5, L4, R5, R4, R4, R2, R3, R4, L3, L2, R5, R3, L2, L1, R2, L3, R2, L1, L1, R1, L3, R5, L5, L1, L2, R5, R3, L3, R3, R5, R2, R5, R5, L5, L5, R2, L3, L5, L2, L1, R2, R2, L2, R2, L3, L2, R3, L5, R4, L4, L5, R3, L4, R1, R3, R2, R4, L2, L3, R2, L5, R5, R4, L2, R4, L1, L3, L1, L3, R1, R2, R1, L5, R5, R3, L3, L3, L2, R4, R2, L5, L1, L1, L5, L4, L1, L1, R1
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
class Direction(enum.Enum):
|
|
||||||
NORTH = Point(-1, 0)
|
|
||||||
EAST = Point(0, 1)
|
|
||||||
SOUTH = Point(1, 0)
|
|
||||||
WEST = Point(0, -1)
|
|
||||||
|
|
||||||
def left(self) -> "Direction":
|
|
||||||
match self:
|
|
||||||
case Direction.NORTH:
|
|
||||||
return Direction.WEST
|
|
||||||
case Direction.EAST:
|
|
||||||
return Direction.NORTH
|
|
||||||
case Direction.SOUTH:
|
|
||||||
return Direction.EAST
|
|
||||||
case Direction.WEST:
|
|
||||||
return Direction.SOUTH
|
|
||||||
|
|
||||||
def right(self) -> "Direction":
|
|
||||||
match self:
|
|
||||||
case Direction.NORTH:
|
|
||||||
return Direction.EAST
|
|
||||||
case Direction.EAST:
|
|
||||||
return Direction.SOUTH
|
|
||||||
case Direction.SOUTH:
|
|
||||||
return Direction.WEST
|
|
||||||
case Direction.WEST:
|
|
||||||
return Direction.NORTH
|
|
||||||
|
|
||||||
def apply(self, p: Point, n: int = 1) -> Point:
|
|
||||||
dx, dy = self.value
|
|
||||||
return Point(p.x + dx * n, p.y + dy * n)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[tuple[str, int]]:
|
|
||||||
return [((line[0]), int(line[1:])) for line in input.split(", ")]
|
|
||||||
|
|
||||||
def first_repeat(directions: list[tuple[str, int]]) -> Point:
|
|
||||||
pos, dir = Point(0, 0), Direction.NORTH
|
|
||||||
directions = parse(input)
|
|
||||||
seen = {pos}
|
|
||||||
for turn, length in directions:
|
|
||||||
dir = dir.left() if turn == "L" else dir.right()
|
|
||||||
for _ in range(length):
|
|
||||||
pos = dir.apply(pos)
|
|
||||||
if pos in seen:
|
|
||||||
return pos
|
|
||||||
seen.add(pos)
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
directions = parse(input)
|
|
||||||
pos = first_repeat(directions)
|
|
||||||
return abs(pos.x) + abs(pos.y)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
R1, R1, R3, R1, R1, L2, R5, L2, R5, R1, R4, L2, R3, L3, R4, L5, R4, R4, R1, L5, L4, R5, R3, L1, R4, R3, L2, L1, R3, L4, R3, L2, R5, R190, R3, R5, L5, L1, R54, L3, L4, L1, R4, R1, R3, L1, L1, R2, L2, R2, R5, L3, R4, R76, L3, R4, R191, R5, R5, L5, L4, L5, L3, R1, R3, R2, L2, L2, L4, L5, L4, R5, R4, R4, R2, R3, R4, L3, L2, R5, R3, L2, L1, R2, L3, R2, L1, L1, R1, L3, R5, L5, L1, L2, R5, R3, L3, R3, R5, R2, R5, R5, L5, L5, R2, L3, L5, L2, L1, R2, R2, L2, R2, L3, L2, R3, L5, R4, L4, L5, R3, L4, R1, R3, R2, R4, L2, L3, R2, L5, R5, R4, L2, R4, L1, L3, L1, L3, R1, R2, R1, L5, R5, R3, L3, L3, L2, R4, R2, L5, L1, L1, L5, L4, L1, L1, R1
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
class Direction(enum.StrEnum):
|
|
||||||
UP = "U"
|
|
||||||
DOWN = "D"
|
|
||||||
LEFT = "L"
|
|
||||||
RIGHT = "R"
|
|
||||||
|
|
||||||
def apply(self, p: Point) -> Point:
|
|
||||||
match self:
|
|
||||||
case Direction.UP:
|
|
||||||
dx, dy = -1, 0
|
|
||||||
case Direction.DOWN:
|
|
||||||
dx, dy = 1, 0
|
|
||||||
case Direction.LEFT:
|
|
||||||
dx, dy = 0, -1
|
|
||||||
case Direction.RIGHT:
|
|
||||||
dx, dy = 0, 1
|
|
||||||
return Point(p.x + dx, p.y + dy)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[list[Direction]]:
|
|
||||||
return [[Direction(c) for c in line] for line in input.splitlines()]
|
|
||||||
|
|
||||||
def enter_code(directions: list[list[Direction]]) -> int:
|
|
||||||
KEYPAD = {
|
|
||||||
Point(-1, -1): 1,
|
|
||||||
Point(-1, 0): 2,
|
|
||||||
Point(-1, 1): 3,
|
|
||||||
Point(0, -1): 4,
|
|
||||||
Point(0, 0): 5,
|
|
||||||
Point(0, 1): 6,
|
|
||||||
Point(1, -1): 7,
|
|
||||||
Point(1, 0): 8,
|
|
||||||
Point(1, 1): 9,
|
|
||||||
}
|
|
||||||
res = 0
|
|
||||||
pos = Point(0, 0)
|
|
||||||
for line in directions:
|
|
||||||
for d in line:
|
|
||||||
new_pos = d.apply(pos)
|
|
||||||
if new_pos not in KEYPAD:
|
|
||||||
continue
|
|
||||||
pos = new_pos
|
|
||||||
res = res * 10 + KEYPAD[pos]
|
|
||||||
return res
|
|
||||||
|
|
||||||
directions = parse(input)
|
|
||||||
return enter_code(directions)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
DUURRDRRURUUUDLRUDDLLLURULRRLDULDRDUULULLUUUDRDUDDURRULDRDDDUDDURLDLLDDRRURRUUUDDRUDDLLDDDURLRDDDULRDUDDRDRLRDUULDLDRDLUDDDLRDRLDLUUUDLRDLRUUUDDLUURRLLLUUUUDDLDRRDRDRLDRLUUDUDLDRUDDUDLLUUURUUDLULRDRULURURDLDLLDLLDUDLDRDULLDUDDURRDDLLRLLLLDLDRLDDUULRDRURUDRRRDDDUULRULDDLRLLLLRLLLLRLURRRLRLRDLULRRLDRULDRRLRURDDLDDRLRDLDRLULLRRUDUURRULLLRLRLRRUDLRDDLLRRUDUDUURRRDRDLDRUDLDRDLUUULDLRLLDRULRULLRLRDRRLRLULLRURUULRLLRRRDRLULUDDUUULDULDUDDDUDLRLLRDRDLUDLRLRRDDDURUUUDULDLDDLDRDDDLURLDRLDURUDRURDDDDDDULLDLDLU
|
|
||||||
LURLRUURDDLDDDLDDLULRLUUUDRDUUDDUDLDLDDLLUDURDRDRULULLRLDDUDRRDRUDLRLDDDURDUURLUURRLLDRURDRLDURUDLRLLDDLLRDRRLURLRRUULLLDRLULURULRRDLLLDLDLRDRRURUUUDUDRUULDLUDLURLRDRRLDRUDRUDURLDLDDRUULDURDUURLLUDRUUUUUURRLRULUDRDUDRLLDUDUDUULURUURURULLUUURDRLDDRLUURDLRULDRRRRLRULRDLURRUULURDRRLDLRUURUDRRRDRURRLDDURLUDLDRRLDRLLLLRDUDLULUDRLLLDULUDUULLULLRLURURURDRRDRUURDULRDDLRULLLLLLDLLURLRLLRDLLRLUDLRUDDRLLLDDUDRLDLRLDUDU
|
|
||||||
RRDDLDLRRUULRDLLURLRURDLUURLLLUUDDULLDRURDUDRLRDRDDUUUULDLUDDLRDULDDRDDDDDLRRDDDRUULDLUDUDRRLUUDDRUDLUUDUDLUDURDURDLLLLDUUUUURUUURDURUUUUDDURULLDDLDLDLULUDRULULULLLDRLRRLLDLURULRDLULRLDRRLDDLULDDRDDRURLDLUULULRDRDRDRRLLLURLLDUUUDRRUUURDLLLRUUDDDULRDRRUUDDUUUDLRRURUDDLUDDDUDLRUDRRDLLLURRRURDRLLULDUULLURRULDLURRUURURRLRDULRLULUDUULRRULLLDDDDURLRRRDUDULLRRDURUURUUULUDLDULLUURDRDRRDURDLUDLULRULRLLURULDRUURRRRDUDULLLLLRRLRUDDUDLLURLRDDLLDLLLDDUDDDDRDURRL
|
|
||||||
LLRURUDUULRURRUDURRDLUUUDDDDURUUDLLDLRULRUUDUURRLRRUDLLUDLDURURRDDLLRUDDUDLDUUDDLUUULUUURRURDDLUDDLULRRRUURLDLURDULULRULRLDUDLLLLDLLLLRLDLRLDLUULLDDLDRRRURDDRRDURUURLRLRDUDLLURRLDUULDRURDRRURDDDDUUUDDRDLLDDUDURDLUUDRLRDUDLLDDDDDRRDRDUULDDLLDLRUDULLRRLLDUDRRLRURRRRLRDUDDRRDDUUUDLULLRRRDDRUUUDUUURUULUDURUDLDRDRLDLRLLRLRDRDRULRURLDDULRURLRLDUURLDDLUDRLRUDDURLUDLLULDLDDULDUDDDUDRLRDRUUURDUULLDULUUULLLDLRULDULUDLRRURDLULUDUDLDDRDRUUULDLRURLRUURDLULUDLULLRD
|
|
||||||
UURUDRRDDLRRRLULLDDDRRLDUDLRRULUUDULLDUDURRDLDRRRDLRDUUUDRDRRLLDULRLUDUUULRULULRUDURDRDDLDRULULULLDURULDRUDDDURLLDUDUUUULRUULURDDDUUUURDLDUUURUDDLDRDLLUDDDDULRDLRUDRLRUDDURDLDRLLLLRLULRDDUDLLDRURDDUDRRLRRDLDDUDRRLDLUURLRLLRRRDRLRLLLLLLURULUURRDDRRLRLRUURDLULRUUDRRRLRLRULLLLUDRULLRDDRDDLDLDRRRURLURDDURRLUDDULRRDULRURRRURLUURDDDUDLDUURRRLUDUULULURLRDDRULDLRLLUULRLLRLUUURUUDUURULRRRUULUULRULDDURLDRRULLRDURRDDDLLUDLDRRRRUULDDD
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
class Direction(enum.StrEnum):
|
|
||||||
UP = "U"
|
|
||||||
DOWN = "D"
|
|
||||||
LEFT = "L"
|
|
||||||
RIGHT = "R"
|
|
||||||
|
|
||||||
def apply(self, p: Point) -> Point:
|
|
||||||
match self:
|
|
||||||
case Direction.UP:
|
|
||||||
dx, dy = -1, 0
|
|
||||||
case Direction.DOWN:
|
|
||||||
dx, dy = 1, 0
|
|
||||||
case Direction.LEFT:
|
|
||||||
dx, dy = 0, -1
|
|
||||||
case Direction.RIGHT:
|
|
||||||
dx, dy = 0, 1
|
|
||||||
return Point(p.x + dx, p.y + dy)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def parse(input: str) -> list[list[Direction]]:
|
|
||||||
return [[Direction(c) for c in line] for line in input.splitlines()]
|
|
||||||
|
|
||||||
def enter_code(directions: list[list[Direction]]) -> str:
|
|
||||||
KEYPAD = {
|
|
||||||
Point(-2, 2): "1",
|
|
||||||
Point(-1, 1): "2",
|
|
||||||
Point(-1, 2): "3",
|
|
||||||
Point(-1, 3): "4",
|
|
||||||
Point(0, 0): "5",
|
|
||||||
Point(0, 1): "6",
|
|
||||||
Point(0, 2): "7",
|
|
||||||
Point(0, 3): "8",
|
|
||||||
Point(0, 4): "9",
|
|
||||||
Point(1, 1): "A",
|
|
||||||
Point(1, 2): "B",
|
|
||||||
Point(1, 3): "C",
|
|
||||||
Point(2, 2): "D",
|
|
||||||
}
|
|
||||||
letters = []
|
|
||||||
pos = Point(0, 0)
|
|
||||||
for line in directions:
|
|
||||||
for d in line:
|
|
||||||
new_pos = d.apply(pos)
|
|
||||||
if new_pos not in KEYPAD:
|
|
||||||
continue
|
|
||||||
pos = new_pos
|
|
||||||
letters.append(KEYPAD[pos])
|
|
||||||
return "".join(letters)
|
|
||||||
|
|
||||||
directions = parse(input)
|
|
||||||
return enter_code(directions)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
DUURRDRRURUUUDLRUDDLLLURULRRLDULDRDUULULLUUUDRDUDDURRULDRDDDUDDURLDLLDDRRURRUUUDDRUDDLLDDDURLRDDDULRDUDDRDRLRDUULDLDRDLUDDDLRDRLDLUUUDLRDLRUUUDDLUURRLLLUUUUDDLDRRDRDRLDRLUUDUDLDRUDDUDLLUUURUUDLULRDRULURURDLDLLDLLDUDLDRDULLDUDDURRDDLLRLLLLDLDRLDDUULRDRURUDRRRDDDUULRULDDLRLLLLRLLLLRLURRRLRLRDLULRRLDRULDRRLRURDDLDDRLRDLDRLULLRRUDUURRULLLRLRLRRUDLRDDLLRRUDUDUURRRDRDLDRUDLDRDLUUULDLRLLDRULRULLRLRDRRLRLULLRURUULRLLRRRDRLULUDDUUULDULDUDDDUDLRLLRDRDLUDLRLRRDDDURUUUDULDLDDLDRDDDLURLDRLDURUDRURDDDDDDULLDLDLU
|
|
||||||
LURLRUURDDLDDDLDDLULRLUUUDRDUUDDUDLDLDDLLUDURDRDRULULLRLDDUDRRDRUDLRLDDDURDUURLUURRLLDRURDRLDURUDLRLLDDLLRDRRLURLRRUULLLDRLULURULRRDLLLDLDLRDRRURUUUDUDRUULDLUDLURLRDRRLDRUDRUDURLDLDDRUULDURDUURLLUDRUUUUUURRLRULUDRDUDRLLDUDUDUULURUURURULLUUURDRLDDRLUURDLRULDRRRRLRULRDLURRUULURDRRLDLRUURUDRRRDRURRLDDURLUDLDRRLDRLLLLRDUDLULUDRLLLDULUDUULLULLRLURURURDRRDRUURDULRDDLRULLLLLLDLLURLRLLRDLLRLUDLRUDDRLLLDDUDRLDLRLDUDU
|
|
||||||
RRDDLDLRRUULRDLLURLRURDLUURLLLUUDDULLDRURDUDRLRDRDDUUUULDLUDDLRDULDDRDDDDDLRRDDDRUULDLUDUDRRLUUDDRUDLUUDUDLUDURDURDLLLLDUUUUURUUURDURUUUUDDURULLDDLDLDLULUDRULULULLLDRLRRLLDLURULRDLULRLDRRLDDLULDDRDDRURLDLUULULRDRDRDRRLLLURLLDUUUDRRUUURDLLLRUUDDDULRDRRUUDDUUUDLRRURUDDLUDDDUDLRUDRRDLLLURRRURDRLLULDUULLURRULDLURRUURURRLRDULRLULUDUULRRULLLDDDDURLRRRDUDULLRRDURUURUUULUDLDULLUURDRDRRDURDLUDLULRULRLLURULDRUURRRRDUDULLLLLRRLRUDDUDLLURLRDDLLDLLLDDUDDDDRDURRL
|
|
||||||
LLRURUDUULRURRUDURRDLUUUDDDDURUUDLLDLRULRUUDUURRLRRUDLLUDLDURURRDDLLRUDDUDLDUUDDLUUULUUURRURDDLUDDLULRRRUURLDLURDULULRULRLDUDLLLLDLLLLRLDLRLDLUULLDDLDRRRURDDRRDURUURLRLRDUDLLURRLDUULDRURDRRURDDDDUUUDDRDLLDDUDURDLUUDRLRDUDLLDDDDDRRDRDUULDDLLDLRUDULLRRLLDUDRRLRURRRRLRDUDDRRDDUUUDLULLRRRDDRUUUDUUURUULUDURUDLDRDRLDLRLLRLRDRDRULRURLDDULRURLRLDUURLDDLUDRLRUDDURLUDLLULDLDDULDUDDDUDRLRDRUUURDUULLDULUUULLLDLRULDULUDLRRURDLULUDUDLDDRDRUUULDLRURLRUURDLULUDLULLRD
|
|
||||||
UURUDRRDDLRRRLULLDDDRRLDUDLRRULUUDULLDUDURRDLDRRRDLRDUUUDRDRRLLDULRLUDUUULRULULRUDURDRDDLDRULULULLDURULDRUDDDURLLDUDUUUULRUULURDDDUUUURDLDUUURUDDLDRDLLUDDDDULRDLRUDRLRUDDURDLDRLLLLRLULRDDUDLLDRURDDUDRRLRRDLDDUDRRLDLUURLRLLRRRDRLRLLLLLLURULUURRDDRRLRLRUURDLULRUUDRRRLRLRULLLLUDRULLRDDRDDLDLDRRRURLURDDURRLUDDULRRDULRURRRURLUURDDDUDLDUURRRLUDUULULURLRDDRULDLRLLUULRLLRLUUURUUDUURULRRRUULUULRULDDURLDRRULLRDURRDDDLLUDLDRRRRUULDDD
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse_triple(input: str) -> tuple[int, int, int]:
|
|
||||||
nums = tuple(map(int, input.split()))
|
|
||||||
assert len(nums) == 3
|
|
||||||
return nums
|
|
||||||
|
|
||||||
def parse(input: str) -> list[tuple[int, int, int]]:
|
|
||||||
return [parse_triple(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def is_triangle(x: int, y: int, z: int) -> bool:
|
|
||||||
return (x + y) > z and (x + z) > y and (y + z) > x
|
|
||||||
|
|
||||||
numbers = parse(input)
|
|
||||||
return sum(is_triangle(*t) for t in numbers)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
1914
2016/d03/ex1/input
1914
2016/d03/ex1/input
File diff suppressed because it is too large
Load diff
|
|
@ -1,39 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse_triple(input: str) -> tuple[int, int, int]:
|
|
||||||
nums = tuple(map(int, input.split()))
|
|
||||||
assert len(nums) == 3
|
|
||||||
return nums
|
|
||||||
|
|
||||||
def parse(input: str) -> list[tuple[int, int, int]]:
|
|
||||||
return [parse_triple(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def is_triangle(x: int, y: int, z: int) -> bool:
|
|
||||||
return (x + y) > z and (x + z) > y and (y + z) > x
|
|
||||||
|
|
||||||
def transpose_triples(
|
|
||||||
numbers: list[tuple[int, int, int]],
|
|
||||||
) -> list[tuple[int, int, int]]:
|
|
||||||
res: list[tuple[int, int, int]] = []
|
|
||||||
for l1, l2, l3 in itertools.batched(numbers, 3):
|
|
||||||
for i in range(3):
|
|
||||||
res.append((l1[i], l2[i], l3[i]))
|
|
||||||
return res
|
|
||||||
|
|
||||||
numbers = parse(input)
|
|
||||||
numbers = transpose_triples(numbers)
|
|
||||||
return sum(is_triangle(*t) for t in numbers)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
1914
2016/d03/ex2/input
1914
2016/d03/ex2/input
File diff suppressed because it is too large
Load diff
|
|
@ -1,39 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Room(NamedTuple):
|
|
||||||
name: str
|
|
||||||
sector_id: int
|
|
||||||
checksum: str
|
|
||||||
|
|
||||||
def is_real(self) -> bool:
|
|
||||||
letters = collections.Counter(self.name.replace("-", ""))
|
|
||||||
checksum = sorted(letters.most_common(), key=lambda t: (-t[1], t[0]))[:5]
|
|
||||||
return "".join(c for c, _ in checksum) == self.checksum
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Room":
|
|
||||||
input, checksum = map(lambda s: s.removesuffix("]"), input.split("["))
|
|
||||||
*name, sector_id = input.split("-")
|
|
||||||
return cls("-".join(name), int(sector_id), checksum)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Room]:
|
|
||||||
return [Room.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
rooms = parse(input)
|
|
||||||
return sum(room.sector_id for room in rooms if room.is_real())
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,991 +0,0 @@
|
||||||
aczupnetwp-dnlgpyrpc-sfye-dstaatyr-561[patyc]
|
|
||||||
jsehsyafy-vqw-ljsafafy-866[nymla]
|
|
||||||
tyepcyletzylw-ncjzrpytn-prr-opawzjxpye-743[cnrdl]
|
|
||||||
foadouwbu-qvcqczohs-obozmgwg-662[lamjh]
|
|
||||||
ckgvutofkj-pkrrehkgt-zkinturume-436[krtue]
|
|
||||||
pelbtravp-pnaql-ernpdhvfvgvba-481[szram]
|
|
||||||
yflexwxoalrp-ciltbo-tlohpelm-887[bmwep]
|
|
||||||
ipvohghykvbz-ihzrla-jbzavtly-zlycpjl-253[lzhvy]
|
|
||||||
cybyjqho-whqtu-rqiauj-fkhsxqiydw-322[syzwi]
|
|
||||||
tipfxvezt-sleep-tljkfdvi-jvimztv-425[tveif]
|
|
||||||
ktiaaqnqml-xtiabqk-oziaa-xczkpiaqvo-616[aiqko]
|
|
||||||
ckgvutofkj-xghhoz-gtgreyoy-306[nyhpz]
|
|
||||||
molgbzqfib-zovldbkfz-zxkav-lmboxqflkp-341[xlomg]
|
|
||||||
ikhcxvmbex-vtgwr-vhtmbgz-mxvaghehzr-111[hvgmx]
|
|
||||||
dpssptjwf-fhh-tfswjdft-805[fstdh]
|
|
||||||
oaddaeuhq-otaoaxmfq-qzsuzqqduzs-534[qadou]
|
|
||||||
dzczkrip-xiruv-sleep-drerxvdvek-685[erdvi]
|
|
||||||
jvsvymbs-yhiipa-vwlyhapvuz-149[zfyqn]
|
|
||||||
nsyjwsfyntsfq-gfxpjy-jslnsjjwnsl-853[sjnfy]
|
|
||||||
mbiyqoxsm-lsyrkjkbnyec-nio-wkbuodsxq-614[bkosy]
|
|
||||||
jchipqat-uadltg-hidgpvt-375[kcnop]
|
|
||||||
jqwpihizlwca-lgm-nqvivkqvo-980[ldeay]
|
|
||||||
xfbqpojafe-dipdpmbuf-tfswjdft-493[fdpbj]
|
|
||||||
kwvacumz-ozilm-kpwkwtibm-lmxtwgumvb-798[mwkbi]
|
|
||||||
eqttqukxg-ejqeqncvg-ocpcigogpv-648[sdtzl]
|
|
||||||
dsxxw-bwc-bcnjmwkclr-678[cwbxd]
|
|
||||||
jvuzbtly-nyhkl-ibuuf-thuhnltlua-175[ulhtb]
|
|
||||||
rdadguja-uadltg-bpgztixcv-401[adgtu]
|
|
||||||
atyzghrk-kmm-ktmotkkxotm-930[xzfpe]
|
|
||||||
uwtojhynqj-ojqqdgjfs-xjwanhjx-151[waqmk]
|
|
||||||
hwdtljsnh-uqfxynh-lwfxx-rfsfljrjsy-567[fhjls]
|
|
||||||
xst-wigvix-gspsvjyp-gerhc-erepcwmw-724[uplfw]
|
|
||||||
kzgwomvqk-jcvvg-zmamizkp-122[kmvzg]
|
|
||||||
sbejpbdujwf-dboez-dpbujoh-dvtupnfs-tfswjdf-623[uxrpz]
|
|
||||||
bxaxipgn-vgpst-rwdrdapit-prfjxhxixdc-609[xpdir]
|
|
||||||
avw-zljyla-zjhclunly-obua-ayhpupun-981[aluyh]
|
|
||||||
nuatmlmdpage-qss-fdmuzuzs-404[btopv]
|
|
||||||
oaddaeuhq-otaoaxmfq-dqoquhuzs-716[aoqdu]
|
|
||||||
myvybpev-cmkfoxqob-rexd-bomosfsxq-432[khwfc]
|
|
||||||
oxaflxzqfsb-zelzlixqb-jxohbqfkd-471[hxkwc]
|
|
||||||
fnjyxwrinm-snuuhknjw-anbnjalq-875[ztvnr]
|
|
||||||
qfmcusbwq-pibbm-fsqswjwbu-922[bqswf]
|
|
||||||
wihmogyl-aluxy-jfumncw-alumm-nluchcha-916[lmuac]
|
|
||||||
oxaflxzqfsb-avb-bkdfkbbofkd-757[trzjy]
|
|
||||||
ksodcbwnsr-qzoggwtwsr-gqojsbusf-vibh-fsgsofqv-818[gsdca]
|
|
||||||
rzvkjiduzy-xcjxjgvoz-gvwjmvojmt-161[zufvq]
|
|
||||||
nwlddtqtpo-mldvpe-dezclrp-639[zlnki]
|
|
||||||
vkppo-rqiauj-huqsgkyiyjyed-530[yijkp]
|
|
||||||
dfcxsqhwzs-qobrm-qcohwbu-fsoqeiwgwhwcb-688[wqbch]
|
|
||||||
vxupkizork-xghhoz-aykx-zkyzotm-462[kzoxh]
|
|
||||||
zotts-jfumncw-alumm-omyl-nymncha-396[bstha]
|
|
||||||
yaxsnlcrun-npp-cajrwrwp-355[nprac]
|
|
||||||
bkwzkqsxq-pvygob-nozkbdwoxd-822[bkodq]
|
|
||||||
frqvxphu-judgh-fdqgb-frdwlqj-hqjlqhhulqj-595[ezyxq]
|
|
||||||
hqtyeqsjylu-sqdto-sedjqydcudj-764[dqjsy]
|
|
||||||
fab-eqodqf-omzpk-fdmuzuzs-430[yxkbc]
|
|
||||||
gpewwmjmih-glsgspexi-xvemrmrk-204[cynzd]
|
|
||||||
kwtwznct-jcvvg-wxmzibqwva-694[cdaps]
|
|
||||||
guahyncw-wuhxs-zchuhwcha-396[xwnmj]
|
|
||||||
pybgmyargtc-zsllw-dglylagle-912[mcrsp]
|
|
||||||
kyelcrga-zyqicr-jyzmpyrmpw-782[yrcmp]
|
|
||||||
wsvsdkbi-qbkno-zvkcdsm-qbkcc-myxdksxwoxd-432[kdsbc]
|
|
||||||
ltpedcxots-rwdrdapit-advxhixrh-271[drtxa]
|
|
||||||
elrkdcdugrxv-sodvwlf-judvv-vklsslqj-465[vdlsj]
|
|
||||||
htwwtxnaj-hfsid-htfynsl-ywfnsnsl-281[ghfea]
|
|
||||||
nij-mywlyn-xsy-xymcah-682[kiasm]
|
|
||||||
zovldbkfz-yrkkv-abmilvjbkq-939[chetn]
|
|
||||||
esyfwlau-kusnwfywj-zmfl-ghwjslagfk-398[fwlsa]
|
|
||||||
lahxpnwrl-yujbcrl-pajbb-mnyuxhvnwc-147[tzcxk]
|
|
||||||
rwcnawjcrxwju-lqxlxujcn-lxwcjrwvnwc-381[hxsdl]
|
|
||||||
pbybeshy-pynffvsvrq-wryylorna-jbexfubc-143[ybfre]
|
|
||||||
lxaaxbren-kdwwh-bqryyrwp-407[sktqh]
|
|
||||||
pybgmyargtc-zyqicr-rpyglgle-106[vsdft]
|
|
||||||
jfifqxov-doxab-yxphbq-obxznrfpfqflk-939[nyvhm]
|
|
||||||
pualyuhapvuhs-jovjvshal-thuhnltlua-383[lrfob]
|
|
||||||
gvcskirmg-tpewxmg-kveww-pskmwxmgw-438[ujily]
|
|
||||||
lgh-kwujwl-tmffq-esfsywewfl-242[fwles]
|
|
||||||
jyddc-fewoix-hitevxqirx-412[ixdec]
|
|
||||||
uzfqdzmfuazmx-otaoaxmfq-ogefayqd-eqdhuoq-222[lbfru]
|
|
||||||
ryexqpqhteki-sxesebqju-tufbeocudj-348[tjzhb]
|
|
||||||
kfg-jvtivk-sleep-wzeretzex-477[ektvz]
|
|
||||||
kzgwomvqk-jcvvg-bmkpvwtwog-174[vgkwm]
|
|
||||||
odiih-kdwwh-uxprbcrlb-251[bdhir]
|
|
||||||
htqtwkzq-xhfajsljw-mzsy-yjhmstqtld-229[thjqs]
|
|
||||||
qjopwxha-xwogap-owhao-914[astye]
|
|
||||||
wrs-vhfuhw-edvnhw-hqjlqhhulqj-439[vufmz]
|
|
||||||
rdggdhxkt-xcitgcpixdcpa-rpcsn-rdpixcv-stktadebtci-609[cdtip]
|
|
||||||
eqttqukxg-fag-eqpvckpogpv-544[jmtpx]
|
|
||||||
kdijqrbu-sqdto-seqjydw-iuhlysui-946[bioht]
|
|
||||||
fydelmwp-awldetn-rcldd-cplnbftdtetzy-951[kpxim]
|
|
||||||
ubhatstkwhnl-unggr-nlxk-mxlmbgz-761[geyqm]
|
|
||||||
ocipgvke-gii-fgxgnqrogpv-726[giopv]
|
|
||||||
fab-eqodqf-otaoaxmfq-iadwetab-430[azmnb]
|
|
||||||
fab-eqodqf-otaoaxmfq-pqhqxabyqzf-456[qafob]
|
|
||||||
xekdwvwnzkqo-zua-naoawnyd-784[anwdk]
|
|
||||||
sbejpbdujwf-fhh-tbmft-285[mbfsn]
|
|
||||||
hwbba-eqpuwogt-itcfg-rncuvke-itcuu-ugtxkegu-648[ugtce]
|
|
||||||
hqcfqwydw-fbqijys-whqii-cqdqwucudj-452[ztesw]
|
|
||||||
dmpuamofuhq-nmewqf-emxqe-742[meqfu]
|
|
||||||
iqmbazulqp-pkq-iadwetab-976[kcxmz]
|
|
||||||
lahxpnwrl-ljwmh-lxjcrwp-bnaerlnb-927[lnrwa]
|
|
||||||
laffe-lruckx-vaxingyotm-306[aflxc]
|
|
||||||
forwcoqhwjs-qcffcgwjs-tzcksf-rsdzcmasbh-220[csfwh]
|
|
||||||
yflexwxoalrp-gbiivybxk-abpfdk-731[sjtrd]
|
|
||||||
foadouwbu-ibghopzs-pogysh-kcfygvcd-506[ogbcd]
|
|
||||||
rtqlgevkng-hnqygt-ugtxkegu-232[zdgob]
|
|
||||||
yrwxefpi-fyrrc-asvowlst-880[jmzfi]
|
|
||||||
tyepcyletzylw-nlyoj-nzletyr-fdpc-epdetyr-795[jfvnq]
|
|
||||||
rkpqxyib-yxphbq-lmboxqflkp-627[vzmla]
|
|
||||||
xjinphzm-bmvyz-hvbizodx-ytz-gjbdnodxn-967[jmuws]
|
|
||||||
ktfitzbgz-vtgwr-inkvatlbgz-813[tgzbi]
|
|
||||||
hqtyeqsjylu-sbqiiyvyut-fbqijys-whqii-vydqdsydw-634[yqisd]
|
|
||||||
hcd-gsqfsh-dzoghwq-ufogg-qcbhowbasbh-506[hgboq]
|
|
||||||
ryexqpqhteki-uww-qdqboiyi-140[qiewy]
|
|
||||||
bkzrrhehdc-qzaahs-cdoknxldms-625[czsmn]
|
|
||||||
sawlkjevaz-lhwopey-cnwoo-yqopkian-oanreya-966[znhlt]
|
|
||||||
xjgjmapg-hdgdovmt-bmvyz-zbb-yzkgjthzio-577[gzbjm]
|
|
||||||
myxcewob-qbkno-lexxi-wkbuodsxq-250[xboek]
|
|
||||||
nsyjwsfyntsfq-hfsid-htfynsl-wjfhvznxnynts-255[umtns]
|
|
||||||
kpvgtpcvkqpcn-ecpfa-ewuvqogt-ugtxkeg-596[ehsca]
|
|
||||||
vkrhzxgbv-cxeeruxtg-ftgtzxfxgm-579[ymast]
|
|
||||||
pbeebfvir-fpniratre-uhag-genvavat-663[smznt]
|
|
||||||
vehmsegxmzi-glsgspexi-hitpscqirx-802[jszht]
|
|
||||||
tyepcyletzylw-nlyoj-nzletyr-cpdplcns-223[lycen]
|
|
||||||
jxdkbqfz-oxaflxzqfsb-avb-lmboxqflkp-523[mzvny]
|
|
||||||
tcfkqcevkxg-tcddkv-uvqtcig-336[cdsln]
|
|
||||||
ide-htrgti-hrpktcvtg-wjci-ldgzhwde-947[tdghi]
|
|
||||||
ojk-nzxmzo-kgvnodx-bmvnn-ozxcijgjbt-213[nojxz]
|
|
||||||
avw-zljyla-msvdly-yljlpcpun-539[lyajp]
|
|
||||||
rdchjbtg-vgpst-rpcsn-rdpixcv-htgkxrth-661[rtcgh]
|
|
||||||
xlrypetn-dnlgpyrpc-sfye-dezclrp-353[pelry]
|
|
||||||
enqvbnpgvir-enoovg-erfrnepu-455[ftlpj]
|
|
||||||
xjinphzm-bmvyz-xviyt-xjvodib-pnzm-oznodib-291[mlybz]
|
|
||||||
rwcnawjcrxwju-kjbtnc-bqryyrwp-511[tkyns]
|
|
||||||
gokzyxsjon-pvygob-nofovyzwoxd-458[ndtfs]
|
|
||||||
bjfutsneji-hfsid-htfynsl-rfwpjynsl-489[fsjnh]
|
|
||||||
ydjuhdqjyedqb-rqiauj-qdqboiyi-452[qdijy]
|
|
||||||
enzcntvat-rtt-genvavat-351[lznyt]
|
|
||||||
rdadguja-qjccn-advxhixrh-791[yncim]
|
|
||||||
fmsledevhsyw-ikk-irkmriivmrk-646[nlxzm]
|
|
||||||
jfifqxov-doxab-mixpqfz-doxpp-obpbxoze-471[oxpbf]
|
|
||||||
jqwpihizlwca-zijjqb-aitma-408[gzpmw]
|
|
||||||
pyknyegle-afmamjyrc-bcqgel-808[gynip]
|
|
||||||
zbytomdsvo-mkxni-bocokbmr-406[obmkc]
|
|
||||||
wfummczcyx-luvvcn-fuvilunils-526[bavmt]
|
|
||||||
hwdtljsnh-gfxpjy-rfsfljrjsy-541[gpszy]
|
|
||||||
lsyrkjkbnyec-oqq-gybucryz-848[ybckq]
|
|
||||||
oaddaeuhq-vqxxknqmz-xasuefuoe-378[rzmqe]
|
|
||||||
vhglnfxk-zktwx-fbebmtkr-zktwx-wrx-vhgmtbgfxgm-813[xepwt]
|
|
||||||
yrwxefpi-gerhc-hitevxqirx-594[eirxh]
|
|
||||||
mvydjvxodqz-xviyt-xjvodib-rjmfncjk-265[cqirj]
|
|
||||||
kdijqrbu-tou-kiuh-juijydw-140[uijdk]
|
|
||||||
ugjjgkanw-usfvq-vwkayf-970[rntsw]
|
|
||||||
froruixo-fdqgb-ilqdqflqj-569[cylni]
|
|
||||||
gpsxdprixkt-hrpktcvtg-wjci-gtprfjxhxixdc-999[xptcg]
|
|
||||||
kwvacumz-ozilm-akidmvomz-pcvb-nqvivkqvo-460[emnrk]
|
|
||||||
pejji-zvkcdsm-qbkcc-domrxyvyqi-484[cdijk]
|
|
||||||
rdadguja-xcitgcpixdcpa-qphzti-bpgztixcv-791[cipad]
|
|
||||||
rkpqxyib-zxkav-zlxqfkd-qoxfkfkd-965[qiftn]
|
|
||||||
bkzrrhehdc-bnmrtldq-fqzcd-atmmx-qdrdzqbg-937[dqrbm]
|
|
||||||
eqttqukxg-rtqlgevkng-dwppa-fgxgnqrogpv-570[gxetc]
|
|
||||||
zbytomdsvo-mkxni-myxdksxwoxd-510[xdmok]
|
|
||||||
ymszqfuo-rxaiqd-dqmocgueufuaz-274[umtwy]
|
|
||||||
pelbtravp-ovbunmneqbhf-qlr-znantrzrag-663[xlyio]
|
|
||||||
rdadguja-ytaanqtpc-gtprfjxhxixdc-141[krcaf]
|
|
||||||
etaqigpke-hnqygt-eqpvckpogpv-362[pegqk]
|
|
||||||
rtqlgevkng-etaqigpke-ecpfa-eqcvkpi-ewuvqogt-ugtxkeg-206[gxszf]
|
|
||||||
fubrjhqlf-fkrfrodwh-sxufkdvlqj-777[pozts]
|
|
||||||
wfintfhynaj-wfggny-xjwanhjx-957[nfjwa]
|
|
||||||
xcitgcpixdcpa-bpvctixr-qphzti-gthtpgrw-479[zjlmc]
|
|
||||||
gntmfefwitzx-hfsid-fsfqdxnx-697[oanif]
|
|
||||||
xgjougizobk-jek-jkvgxzsktz-384[kgjzo]
|
|
||||||
nzydfxpc-rclop-mldvpe-cpdplcns-925[pcdln]
|
|
||||||
ltpedcxots-qphzti-gtrtxkxcv-739[txcpd]
|
|
||||||
gvaaz-fhh-mphjtujdt-233[hajtd]
|
|
||||||
jchipqat-rpcsn-gtprfjxhxixdc-297[cpxhi]
|
|
||||||
gsvvswmzi-gerhc-tyvglewmrk-308[zbdcy]
|
|
||||||
dmybmsuzs-omzpk-oamfuzs-pqhqxabyqzf-508[mzqsa]
|
|
||||||
iruzfrtkzmv-treup-tfrkzex-jkfirxv-295[rfktz]
|
|
||||||
pdjqhwlf-mhoobehdq-vwrudjh-127[hdjoq]
|
|
||||||
rgndvtcxr-hrpktcvtg-wjci-apqdgpidgn-375[jdrhb]
|
|
||||||
sbqiiyvyut-isqludwuh-xkdj-efuhqjyedi-114[qjzpn]
|
|
||||||
lahxpnwrl-npp-nwprwnnarwp-459[ontmq]
|
|
||||||
zntargvp-onfxrg-fnyrf-871[fnrga]
|
|
||||||
molgbzqfib-avb-absbilmjbkq-601[bailm]
|
|
||||||
kpvgtpcvkqpcn-tcddkv-wugt-vguvkpi-492[vkpcg]
|
|
||||||
jfifqxov-doxab-zxkav-zlkqxfkjbkq-341[kxfqa]
|
|
||||||
qfmcusbwq-dzoghwq-ufogg-fsqswjwbu-220[zbjty]
|
|
||||||
xjinphzm-bmvyz-mvwwdo-yzkgjthzio-785[zmhij]
|
|
||||||
ejpanjwpekjwh-ydkykhwpa-owhao-186[hqlfd]
|
|
||||||
nzydfxpc-rclop-prr-cplnbftdtetzy-483[pcrtd]
|
|
||||||
kwtwznct-rmttgjmiv-amzdqkma-590[mtakw]
|
|
||||||
muqfedyput-fbqijys-whqii-iqbui-790[gjxky]
|
|
||||||
egdytrixat-rgndvtcxr-rpcsn-jhtg-ithixcv-115[trcgi]
|
|
||||||
fab-eqodqf-rxaiqd-mzmxkeue-404[eqadf]
|
|
||||||
zotts-xsy-guleyncha-708[ymnbi]
|
|
||||||
mbiyqoxsm-pvygob-gybucryz-536[zbyxv]
|
|
||||||
dmybmsuzs-bxmefuo-sdmee-pqhqxabyqzf-716[mbeqs]
|
|
||||||
qspkfdujmf-ezf-fohjoffsjoh-519[fjohs]
|
|
||||||
nwlddtqtpo-prr-xlcvpetyr-249[owkmz]
|
|
||||||
amlqskcp-epybc-aylbw-amyrgle-bctcjmnkclr-808[clabm]
|
|
||||||
qspkfdujmf-qmbtujd-hsbtt-eftjho-727[tigys]
|
|
||||||
pualyuhapvuhs-thnulapj-msvdly-ylzlhyjo-877[lhuya]
|
|
||||||
diozmivodjivg-zbb-nzmqdxzn-629[zdibm]
|
|
||||||
yrwxefpi-qmpmxevc-kvehi-gerhc-gsexmrk-qerekiqirx-126[erixk]
|
|
||||||
qlm-pbzobq-zxkav-zlxqfkd-zrpqljbo-pbosfzb-575[phqza]
|
|
||||||
irgyyolokj-lruckx-aykx-zkyzotm-904[ubkvy]
|
|
||||||
cebwrpgvyr-pnaql-pbngvat-bcrengvbaf-793[bagnp]
|
|
||||||
wlsiayhcw-wifilzof-wuhxs-mylpcwym-630[wilyc]
|
|
||||||
nglmtuex-ktuubm-nlxk-mxlmbgz-215[egtsz]
|
|
||||||
sbejpbdujwf-dboez-nbobhfnfou-883[jpkmo]
|
|
||||||
qzoggwtwsr-qobrm-gsfjwqsg-480[xkwvm]
|
|
||||||
nwzekwypera-oywrajcan-dqjp-wymqeoepekj-472[zeydw]
|
|
||||||
sawlkjevaz-ywjzu-yqopkian-oanreya-836[ayejk]
|
|
||||||
pybgmyargtc-afmamjyrc-rpyglgle-470[zgmsu]
|
|
||||||
nzwzcqfw-qwzhpc-cplnbftdtetzy-977[zctwf]
|
|
||||||
lhkhszqx-fqzcd-okzrshb-fqzrr-cdudknoldms-651[defrs]
|
|
||||||
ugfkmewj-yjsvw-owshgfarwv-tskcwl-wfyafwwjafy-294[wfajs]
|
|
||||||
gpbepvxcv-gpqqxi-stktadebtci-609[npyad]
|
|
||||||
pxtihgbsxw-vahvhetmx-hixktmbhgl-397[pvcfe]
|
|
||||||
guahyncw-vohhs-fiacmncwm-656[chamn]
|
|
||||||
wfruflnsl-uqfxynh-lwfxx-wjfhvznxnynts-463[fnxlw]
|
|
||||||
lzfmdshb-cxd-dmfhmddqhmf-703[dmfhb]
|
|
||||||
gzefmnxq-eomhqzsqd-tgzf-oazfmuzyqzf-118[zfqme]
|
|
||||||
udskkaxawv-usfvq-ugslafy-hmjuzskafy-658[asufk]
|
|
||||||
ugjjgkanw-vqw-ksdwk-112[kwgja]
|
|
||||||
enqvbnpgvir-cynfgvp-tenff-fuvccvat-975[vfnce]
|
|
||||||
fydelmwp-ojp-nfdezxpc-dpcgtnp-353[gziom]
|
|
||||||
fmsledevhsyw-gpewwmjmih-glsgspexi-tyvglewmrk-178[egmsw]
|
|
||||||
shmml-enoovg-freivprf-585[efmor]
|
|
||||||
bnqqnrhud-atmmx-qdrdzqbg-651[qdbmn]
|
|
||||||
pxtihgbsxw-vahvhetmx-nlxk-mxlmbgz-943[xhmbg]
|
|
||||||
xfbqpojafe-dipdpmbuf-tbmft-441[wuizc]
|
|
||||||
zsxyfgqj-uqfxynh-lwfxx-ijxnls-749[futrq]
|
|
||||||
oaddaeuhq-nmewqf-dqmocgueufuaz-508[mwlcv]
|
|
||||||
buzahisl-zjhclunly-obua-zavyhnl-201[kzylj]
|
|
||||||
yhwooebeaz-iwcjapey-oywrajcan-dqjp-zaoecj-524[aejoc]
|
|
||||||
bwx-amkzmb-qvbmzvibqwvit-lgm-zmikycqaqbqwv-772[dubva]
|
|
||||||
oxmeeuruqp-ngzzk-fqotzaxask-638[zaeko]
|
|
||||||
xfbqpojafe-qmbtujd-hsbtt-efwfmpqnfou-363[fbqte]
|
|
||||||
iehepwnu-cnwza-xqjju-nayaerejc-472[eajnc]
|
|
||||||
ytu-xjhwjy-jll-ijxnls-385[moyjn]
|
|
||||||
nvrgfezqvu-treup-tfrkzex-wzeretzex-997[fpvnt]
|
|
||||||
kwvacumz-ozilm-moo-camz-bmabqvo-434[sanvt]
|
|
||||||
lxaaxbren-ouxfna-bjunb-277[abnxu]
|
|
||||||
gpsxdprixkt-uadltg-tcvxcttgxcv-453[txcgd]
|
|
||||||
owshgfarwv-jsttal-hmjuzskafy-658[asfhj]
|
|
||||||
pbafhzre-tenqr-qlr-ynobengbel-403[ebnrl]
|
|
||||||
yaxsnlcrun-mhn-jlzdrbrcrxw-121[wngsc]
|
|
||||||
bgmxkgtmbhgte-vtgwr-vhtmbgz-tgterlbl-995[gtbme]
|
|
||||||
nvrgfezqvu-avccpsvre-tljkfdvi-jvimztv-269[vcefi]
|
|
||||||
apwmeclga-pyzzgr-dglylagle-158[auvsi]
|
|
||||||
qczcftiz-pogysh-rsgwub-350[kcdvs]
|
|
||||||
qlm-pbzobq-gbiivybxk-abpfdk-211[bikpq]
|
|
||||||
crwwv-rkpqxyib-yrkkv-cfkxkzfkd-419[krcfv]
|
|
||||||
sbnqbhjoh-cbtlfu-tupsbhf-285[bhfst]
|
|
||||||
qlm-pbzobq-avb-bkdfkbbofkd-159[golnc]
|
|
||||||
nchhg-jiasmb-lmaqov-902[dpmcw]
|
|
||||||
tagzsrsjvgmk-jsttal-umklgewj-kwjnauw-944[fsqml]
|
|
||||||
rkpqxyib-yxphbq-jxkxdbjbkq-601[npbtf]
|
|
||||||
ujqgywfau-tmffq-hmjuzskafy-736[zmnlk]
|
|
||||||
ujqgywfau-hdsklau-yjskk-umklgewj-kwjnauw-190[kujwa]
|
|
||||||
uqtqbizg-ozilm-jcvvg-lmxizbumvb-850[mhanw]
|
|
||||||
yhtwhnpun-ihzrla-klclsvwtlua-591[lkqzn]
|
|
||||||
sbqiiyvyut-sqdto-seqjydw-sedjqydcudj-738[warvn]
|
|
||||||
bwx-amkzmb-uqtqbizg-ozilm-moo-kwvbiqvumvb-746[wystg]
|
|
||||||
tipfxvezt-vxx-cfxzjkztj-555[xtzfj]
|
|
||||||
cjpibabsepvt-cvooz-sftfbsdi-571[myqsb]
|
|
||||||
ymszqfuo-fab-eqodqf-pkq-xmnadmfadk-274[tkbds]
|
|
||||||
wlqqp-treup-tfrkzex-jkfirxv-581[refkp]
|
|
||||||
lnkfaypeha-fahhuxawj-wjwhuoeo-550[ahwef]
|
|
||||||
lsyrkjkbnyec-oqq-ckvoc-874[azsyv]
|
|
||||||
gvcskirmg-fewoix-wlmttmrk-360[mgikr]
|
|
||||||
irdgrxzex-tipfxvezt-treup-tfrkzex-cfxzjkztj-607[txzer]
|
|
||||||
avw-zljyla-zjhclunly-obua-yljlpcpun-617[lajuy]
|
|
||||||
nwzekwypera-lhwopey-cnwoo-hkceopeyo-134[zulqp]
|
|
||||||
vkppo-sqdto-seqjydw-jhqydydw-114[dqyjo]
|
|
||||||
zixppfcfba-zxkav-zlkqxfkjbkq-679[txhzn]
|
|
||||||
sbnqbhjoh-dboez-sftfbsdi-623[bsdfh]
|
|
||||||
qjopwxha-bhksan-zalhkuiajp-316[ahjkp]
|
|
||||||
yhtwhnpun-thnulapj-ibuuf-klzpnu-773[unhpl]
|
|
||||||
uwtojhynqj-kqtbjw-wjfhvznxnynts-827[ntyqj]
|
|
||||||
jef-iushuj-rkddo-ijehqwu-504[biekf]
|
|
||||||
gspsvjyp-tpewxmg-kveww-gywxsqiv-wivzmgi-672[sryce]
|
|
||||||
rgllk-eomhqzsqd-tgzf-etubbuzs-118[zbegl]
|
|
||||||
shmml-pubpbyngr-ynobengbel-403[bnegl]
|
|
||||||
gsrwyqiv-kvehi-fewoix-wivzmgiw-256[rimyz]
|
|
||||||
iuxxuyobk-yigbktmkx-natz-xkykgxin-852[kxiyb]
|
|
||||||
excdklvo-oqq-vklybkdybi-744[utifh]
|
|
||||||
ojk-nzxmzo-agjrzm-xpnojhzm-nzmqdxz-915[zmjno]
|
|
||||||
qspkfdujmf-sbccju-eftjho-103[byjhc]
|
|
||||||
fodvvlilhg-mhoobehdq-whfkqrorjb-699[taskb]
|
|
||||||
aflwjfslagfsd-usfvq-ogjckzgh-814[emsnh]
|
|
||||||
sebehvkb-uww-tulubefcudj-712[ubewc]
|
|
||||||
egdytrixat-gpbepvxcv-hrpktcvtg-wjci-hidgpvt-531[vzdcg]
|
|
||||||
nsyjwsfyntsfq-zsxyfgqj-gzssd-wjxjfwhm-749[sgmhv]
|
|
||||||
ktfitzbgz-yehpxk-kxvxbobgz-761[ryzea]
|
|
||||||
tcrjjzwzvu-irsszk-rthlzjzkzfe-503[ocepg]
|
|
||||||
dfcxsqhwzs-pibbm-sbuwbssfwbu-558[tocys]
|
|
||||||
nwzekwypera-bhksan-odellejc-758[eakln]
|
|
||||||
qfmcusbwq-qobrm-qcohwbu-fsoqeiwgwhwcb-402[cpzsy]
|
|
||||||
cvabijtm-zijjqb-uizsmbqvo-434[btzma]
|
|
||||||
irdgrxzex-srjbvk-glityrjzex-867[rxegi]
|
|
||||||
rdadguja-tvv-gtrtxkxcv-609[tvadg]
|
|
||||||
wdjcvuvmyjpn-zbb-mznzvmxc-213[ndmaz]
|
|
||||||
vagreangvbany-sybjre-nanylfvf-507[bryme]
|
|
||||||
vjpwncrl-mhn-bqryyrwp-979[rnpwy]
|
|
||||||
jqwpihizlwca-ntwemz-abwziom-642[iyzsa]
|
|
||||||
jchipqat-rwdrdapit-detgpixdch-921[dipta]
|
|
||||||
vqr-ugetgv-tcddkv-eqpvckpogpv-440[vgpcd]
|
|
||||||
ajyqqgdgcb-aylbw-amyrgle-qyjcq-756[qyagb]
|
|
||||||
fbebmtkr-zktwx-utldxm-nlxk-mxlmbgz-553[onbvf]
|
|
||||||
hwdtljsnh-kqtbjw-ijajqturjsy-827[jthqs]
|
|
||||||
sedikcuh-whqtu-sxesebqju-udwyduuhydw-556[rvudf]
|
|
||||||
ipvohghykvbz-tpspahyf-nyhkl-yhiipa-huhsfzpz-123[hpyiz]
|
|
||||||
fubrjhqlf-mhoobehdq-oderudwrub-153[bdhor]
|
|
||||||
mbggf-zjhclunly-obua-dvyrzovw-695[bglou]
|
|
||||||
houngfgxjuay-igtje-aykx-zkyzotm-176[qcita]
|
|
||||||
lugjuacha-mwupyhayl-bohn-xyjulngyhn-318[gnftc]
|
|
||||||
rdggdhxkt-rpcsn-rdpixcv-itrwcdadvn-505[uancd]
|
|
||||||
yaxsnlcrun-ouxfna-jwjuhbrb-199[xnmwj]
|
|
||||||
yrwxefpi-tpewxmg-kveww-wlmttmrk-334[rfqkl]
|
|
||||||
ktwbhtvmbox-unggr-kxtvjnblbmbhg-215[bgthk]
|
|
||||||
amlqskcp-epybc-bwc-pcyaosgqgrgml-600[cgpab]
|
|
||||||
ujqgywfau-usfvq-ugslafy-jwuwanafy-606[uafwy]
|
|
||||||
nwzekwypera-lhwopey-cnwoo-lqnydwoejc-134[xithv]
|
|
||||||
nwzekwypera-acc-naoawnyd-160[itvch]
|
|
||||||
luxciuwncpy-ohmnuvfy-yaa-wihnuchgyhn-526[hnuyc]
|
|
||||||
ygcrqpkbgf-ejqeqncvg-tgegkxkpi-674[gekqc]
|
|
||||||
mtzslklcozfd-qwzhpc-nfdezxpc-dpcgtnp-223[ucwob]
|
|
||||||
tinnm-tzcksf-zcuwghwqg-948[nmktj]
|
|
||||||
rdchjbtg-vgpst-hrpktcvtg-wjci-itrwcdadvn-453[ngtzh]
|
|
||||||
yrwxefpi-nippcfier-hizipstqirx-932[ipref]
|
|
||||||
cvabijtm-xtiabqk-oziaa-kcabwumz-amzdqkm-590[mpqzo]
|
|
||||||
dpmpsgvm-dipdpmbuf-efqmpznfou-259[pmdfu]
|
|
||||||
ynukcajey-nwxxep-zarahkliajp-238[ytaej]
|
|
||||||
zbytomdsvo-mkxni-mykdsxq-nocsqx-770[mosxd]
|
|
||||||
tagzsrsjvgmk-xdgowj-jwuwanafy-814[efhpk]
|
|
||||||
xqvwdeoh-fdqgb-rshudwlrqv-127[jpkat]
|
|
||||||
kpvgtpcvkqpcn-fag-qrgtcvkqpu-596[pcgkq]
|
|
||||||
zlkprjbo-doxab-gbiivybxk-obpbxoze-393[boxik]
|
|
||||||
zbytomdsvo-mrymyvkdo-domrxyvyqi-744[ymodv]
|
|
||||||
jvuzbtly-nyhkl-qlssfilhu-klwhyatlua-695[lhuya]
|
|
||||||
nzydfxpc-rclop-nsznzwlep-xlylrpxpye-145[plnxy]
|
|
||||||
atyzghrk-xghhoz-rghuxgzuxe-748[ghxzr]
|
|
||||||
vhglnfxk-zktwx-ietlmbv-zktll-ftkdxmbgz-787[wbspa]
|
|
||||||
njmjubsz-hsbef-dipdpmbuf-vtfs-uftujoh-623[fubjs]
|
|
||||||
pyknyegle-aylbw-jmegqrgaq-756[egyal]
|
|
||||||
bgmxkgtmbhgte-lvtoxgzxk-angm-vhgmtbgfxgm-137[gmtxb]
|
|
||||||
ydjuhdqjyedqb-vbemuh-jusxdebewo-946[debju]
|
|
||||||
jxdkbqfz-zxkav-zlxqfkd-mrozexpfkd-263[kxzdf]
|
|
||||||
nbhofujd-dipdpmbuf-pqfsbujpot-597[pbdfu]
|
|
||||||
wrs-vhfuhw-fdqgb-vklsslqj-647[sfhlq]
|
|
||||||
vkrhzxgbv-vtgwr-ehzblmbvl-449[knuzb]
|
|
||||||
gsrwyqiv-kvehi-fyrrc-pefsvexsvc-750[versc]
|
|
||||||
hqcfqwydw-vbemuh-ixyffydw-270[fwydh]
|
|
||||||
vetllbybxw-vkrhzxgbv-lvtoxgzxk-angm-ybgtgvbgz-527[jxrwq]
|
|
||||||
bkzrrhehdc-eknvdq-cdrhfm-365[dhrce]
|
|
||||||
cybyjqho-whqtu-rkddo-qsgkyiyjyed-530[ydqhj]
|
|
||||||
ckgvutofkj-hatte-ynovvotm-332[tovka]
|
|
||||||
sawlkjevaz-zua-iwngapejc-758[jzwql]
|
|
||||||
mvhkvbdib-kgvnodx-bmvnn-gjbdnodxn-551[bmkyo]
|
|
||||||
enzcntvat-fpniratre-uhag-grpuabybtl-689[sqkoh]
|
|
||||||
bqvvu-acc-oanreyao-108[acovb]
|
|
||||||
tyepcyletzylw-nlyoj-nzletyr-nfdezxpc-dpcgtnp-275[yelnp]
|
|
||||||
fbebmtkr-zktwx-lvtoxgzxk-angm-kxlxtkva-839[kxtab]
|
|
||||||
ojk-nzxmzo-wvnfzo-vivgtndn-707[mlndw]
|
|
||||||
tpspahyf-nyhkl-qlssfilhu-klwsvftlua-487[iewds]
|
|
||||||
shoewudys-isqludwuh-xkdj-husuylydw-868[tlyhz]
|
|
||||||
qzoggwtwsr-qobrm-oqeiwgwhwcb-116[wgoqb]
|
|
||||||
zlkprjbo-doxab-yxphbq-pxibp-237[ocanz]
|
|
||||||
iruzfrtkzmv-avccpsvre-vexzevvizex-893[nyktl]
|
|
||||||
hqtyeqsjylu-hqrryj-tulubefcudj-894[ujqye]
|
|
||||||
zlkprjbo-doxab-fkqbokxqflkxi-mixpqfz-doxpp-xznrfpfqflk-523[fxkpo]
|
|
||||||
dpmpsgvm-sbccju-dvtupnfs-tfswjdf-129[neysa]
|
|
||||||
qcbgiasf-ufors-dzoghwq-ufogg-zopcfohcfm-246[yhmkz]
|
|
||||||
esyfwlau-ugjjgkanw-usfvq-kzahhafy-242[wnzhb]
|
|
||||||
mbiyqoxsm-lkcuod-nozkbdwoxd-432[odbkm]
|
|
||||||
usfvq-ugslafy-vwhdgqewfl-632[fglqs]
|
|
||||||
gokzyxsjon-zvkcdsm-qbkcc-oxqsxoobsxq-484[xrkfl]
|
|
||||||
hdgdovmt-bmvyz-wvnfzo-gjbdnodxn-395[bwicg]
|
|
||||||
sehheiylu-fhezusjybu-rkddo-udwyduuhydw-530[udhye]
|
|
||||||
glrcplyrgmlyj-aylbw-amyrgle-nspafyqgle-210[dmuny]
|
|
||||||
aflwjfslagfsd-jsttal-xafsfuafy-138[faslj]
|
|
||||||
yuxufmdk-sdmpq-iqmbazulqp-otaoaxmfq-pqbxakyqzf-586[qamfp]
|
|
||||||
jef-iushuj-sxesebqju-ixyffydw-270[iztnj]
|
|
||||||
zvyvgnel-tenqr-enzcntvat-ohaal-ratvarrevat-793[atven]
|
|
||||||
yuxufmdk-sdmpq-vqxxknqmz-ogefayqd-eqdhuoq-612[qdmux]
|
|
||||||
yhtwhnpun-kfl-ylhjxbpzpapvu-357[phlnu]
|
|
||||||
egdytrixat-qjccn-bpcpvtbtci-557[mtpgc]
|
|
||||||
wsvsdkbi-qbkno-mkxni-mykdsxq-ecob-docdsxq-120[dksbo]
|
|
||||||
xtwtelcj-rclop-ojp-dstaatyr-873[omnal]
|
|
||||||
wifilzof-jfumncw-alumm-xypyfijgyhn-318[evfso]
|
|
||||||
mvydjvxodqz-agjrzm-hvivbzhzio-655[vzdhi]
|
|
||||||
jsehsyafy-usfvq-ugslafy-jwuwanafy-840[afsyu]
|
|
||||||
myxcewob-qbkno-nio-bocokbmr-900[obckm]
|
|
||||||
ipvohghykvbz-wshzapj-nyhzz-vwlyhapvuz-539[hzvpy]
|
|
||||||
tbxmlkfwba-pzxsbkdbo-erkq-zrpqljbo-pbosfzb-185[bkopz]
|
|
||||||
rdadguja-eaphixr-vgphh-itrwcdadvn-869[nfpxs]
|
|
||||||
lugjuacha-jfumncw-alumm-zchuhwcha-734[uachm]
|
|
||||||
jsehsyafy-jsttal-jwsuimakalagf-762[mnvlh]
|
|
||||||
zixppfcfba-yrkkv-absbilmjbkq-393[ihgyz]
|
|
||||||
bxaxipgn-vgpst-rdchjbtg-vgpst-rpcsn-rdpixcv-hpath-817[pgtch]
|
|
||||||
rtqlgevkng-ejqeqncvg-hkpcpekpi-154[xpgty]
|
|
||||||
laffe-hgyqkz-xkikobotm-488[kfoab]
|
|
||||||
jfifqxov-doxab-zxkav-zlxqfkd-qoxfkfkd-419[ubaro]
|
|
||||||
myxcewob-qbkno-cmkfoxqob-rexd-zebmrkcsxq-952[boxce]
|
|
||||||
apuut-wvnfzo-rjmfncjk-447[fjnua]
|
|
||||||
lejkrscv-tfcfiwlc-avccpsvre-fgvirkzfej-113[cfver]
|
|
||||||
nglmtuex-cxeeruxtg-kxvxbobgz-215[xegbt]
|
|
||||||
sgmtkzoi-kmm-xkgiwaoyozout-748[qrkst]
|
|
||||||
amppmqgtc-djmucp-rcaflmjmew-912[bcvna]
|
|
||||||
xst-wigvix-fyrrc-wepiw-438[ygref]
|
|
||||||
dzczkrip-xiruv-jtrmvexvi-ylek-fgvirkzfej-295[irvek]
|
|
||||||
diozmivodjivg-xviyt-xjvodib-zibdizzmdib-265[zmrey]
|
|
||||||
rgndvtcxr-ytaanqtpc-stepgibtci-661[tcagi]
|
|
||||||
xgsvgmotm-hgyqkz-jkyomt-358[ajyhb]
|
|
||||||
zloolpfsb-yxphbq-ixyloxqlov-393[loxbp]
|
|
||||||
zilqwikbqdm-jiasmb-uizsmbqvo-668[ibmqs]
|
|
||||||
rtqlgevkng-rncuvke-itcuu-ucngu-206[ucgne]
|
|
||||||
dmybmsuzs-yuxufmdk-sdmpq-eomhqzsqd-tgzf-iadwetab-482[nkqyl]
|
|
||||||
vetllbybxw-ktuubm-hixktmbhgl-345[ikqop]
|
|
||||||
bwx-amkzmb-jcvvg-ikycqaqbqwv-954[symcn]
|
|
||||||
ubhatstkwhnl-ynssr-lvtoxgzxk-angm-kxlxtkva-163[ktxal]
|
|
||||||
zlilocri-yxphbq-pefmmfkd-471[filmp]
|
|
||||||
yflexwxoalrp-zlkprjbo-doxab-zxkav-zlxqfkd-qoxfkfkd-419[xkflo]
|
|
||||||
oxaflxzqfsb-zelzlixqb-xznrfpfqflk-393[flxzq]
|
|
||||||
ixccb-vfdyhqjhu-kxqw-ghyhorsphqw-101[pzgst]
|
|
||||||
pybgmyargtc-qaytclecp-fslr-sqcp-rcqrgle-860[crglp]
|
|
||||||
zbytomdsvo-mkxni-kmaescsdsyx-562[smdko]
|
|
||||||
hwbba-dwppa-ocpcigogpv-570[pabcg]
|
|
||||||
eza-dpncpe-nlyoj-nzletyr-wlmzclezcj-171[elzcn]
|
|
||||||
tbxmlkfwba-mixpqfz-doxpp-zlkqxfkjbkq-159[kxbfp]
|
|
||||||
vetllbybxw-yehpxk-ehzblmbvl-657[blehv]
|
|
||||||
zuv-ykixkz-jek-lotgtiotm-852[ktioz]
|
|
||||||
fnjyxwrinm-mhn-mnyjacvnwc-277[zgpnw]
|
|
||||||
odiih-ljwmh-lxjcrwp-mnenuxyvnwc-615[nwchi]
|
|
||||||
wfummczcyx-wuhxs-qilembij-838[mciuw]
|
|
||||||
sno-rdbqds-bgnbnkzsd-bnmszhmldms-859[sbdnm]
|
|
||||||
nvrgfezqvu-gcrjkzt-xirjj-ivjvrity-555[ylfxv]
|
|
||||||
encuukhkgf-uecxgpigt-jwpv-ujkrrkpi-622[kugpc]
|
|
||||||
lnkfaypeha-xqjju-qoan-paopejc-446[ajpen]
|
|
||||||
kmjezxodgz-ytz-gvwjmvojmt-109[jmzgo]
|
|
||||||
ygcrqpkbgf-hnqygt-octmgvkpi-128[gckpq]
|
|
||||||
jxdkbqfz-mixpqfz-doxpp-tlohpelm-107[pxdfl]
|
|
||||||
xjgjmapg-xviyt-xjvodib-adivixdib-759[ixdjv]
|
|
||||||
laffe-jek-sgtgmksktz-644[vuenb]
|
|
||||||
pbafhzre-tenqr-enoovg-ratvarrevat-975[ymshj]
|
|
||||||
lqwhuqdwlrqdo-vfdyhqjhu-kxqw-uhvhdufk-959[kzlvy]
|
|
||||||
rflsjynh-jll-zxjw-yjxynsl-697[jlyns]
|
|
||||||
wrs-vhfuhw-sodvwlf-judvv-ghvljq-361[vhwdf]
|
|
||||||
ynssr-unggr-tvjnblbmbhg-163[bgnrs]
|
|
||||||
jyfvnlupj-jvsvymbs-yhiipa-zopwwpun-903[nrdma]
|
|
||||||
kzeed-hfsid-uzwhmfxnsl-515[uoyvx]
|
|
||||||
ide-htrgti-uadltg-gtprfjxhxixdc-375[tdgix]
|
|
||||||
sorozgxe-mxgjk-hatte-vaxingyotm-358[fwxei]
|
|
||||||
ydjuhdqjyedqb-fbqijys-whqii-jusxdebewo-582[nuzsj]
|
|
||||||
yknnkoera-xwogap-paydjkhkcu-498[kanop]
|
|
||||||
nzydfxpc-rclop-upwwjmply-opdtry-691[pycdl]
|
|
||||||
dlhwvupglk-jhukf-jvhapun-zlycpjlz-409[lhjpu]
|
|
||||||
kwvacumz-ozilm-moo-bmkpvwtwog-694[mowkv]
|
|
||||||
kmjezxodgz-wpiit-mzxzdqdib-863[anvbu]
|
|
||||||
xlrypetn-nsznzwlep-xlylrpxpye-587[znfwt]
|
|
||||||
pybgmyargtc-qaytclecp-fslr-umpiqfmn-600[nzvej]
|
|
||||||
etyyx-qzaahs-lzqjdshmf-781[ahqsy]
|
|
||||||
ovbunmneqbhf-wryylorna-znantrzrag-221[pnazx]
|
|
||||||
gzefmnxq-bxmefuo-sdmee-ymzmsqyqzf-352[lgvpu]
|
|
||||||
ixeumktoi-jek-jkbkruvsktz-488[mzeun]
|
|
||||||
dzczkrip-xiruv-avccpsvre-glityrjzex-321[eflmp]
|
|
||||||
wfruflnsl-hfsid-fhvznxnynts-307[fnshl]
|
|
||||||
vkppo-rkddo-iqbui-218[dikop]
|
|
||||||
muqfedyput-zubboruqd-mehaixef-452[inbaj]
|
|
||||||
ftzgxmbv-cxeeruxtg-nlxk-mxlmbgz-683[xgmbe]
|
|
||||||
htsxzrjw-lwfij-uqfxynh-lwfxx-hzxytrjw-xjwanhj-827[xjwhf]
|
|
||||||
qekrixmg-wgezirkiv-lyrx-tyvglewmrk-282[regik]
|
|
||||||
ktiaaqnqml-jiasmb-apqxxqvo-226[asvyf]
|
|
||||||
lejkrscv-irdgrxzex-srjbvk-kvtyefcfxp-165[rekvx]
|
|
||||||
hvbizodx-nxvqzibzm-cpio-hvmfzodib-291[izbov]
|
|
||||||
ltpedcxots-tvv-rjhidbtg-htgkxrt-297[tdghr]
|
|
||||||
dlhwvupglk-mbggf-jovjvshal-zlycpjlz-565[lgjvh]
|
|
||||||
xfbqpojafe-tdbwfohfs-ivou-sfbdrvjtjujpo-779[fjobd]
|
|
||||||
kmjezxodgz-xviyt-gvwjmvojmt-577[flhas]
|
|
||||||
jshzzpmplk-jhukf-jvhapun-vwlyhapvuz-669[hpjuv]
|
|
||||||
tfejldvi-xiruv-gcrjkzt-xirjj-drerxvdvek-295[dpsef]
|
|
||||||
zotts-yaa-lymyulwb-968[skymd]
|
|
||||||
rmn-qcapcr-zyqicr-umpiqfmn-704[cmqri]
|
|
||||||
xfbqpojafe-cbtlfu-qvsdibtjoh-727[bfjoq]
|
|
||||||
ykhknbqh-nwxxep-oanreyao-732[naehk]
|
|
||||||
raphhxuxts-hrpktcvtg-wjci-hidgpvt-921[hmzng]
|
|
||||||
yrwxefpi-qmpmxevc-kvehi-gerhc-gsexmrk-hizipstqirx-932[mdsza]
|
|
||||||
xjgjmapg-xviyt-vivgtndn-603[utnks]
|
|
||||||
cxy-bnlanc-mhn-vjwjpnvnwc-745[mtsvn]
|
|
||||||
ujoon-gpbepvxcv-eaphixr-vgphh-uxcpcrxcv-687[pcvxh]
|
|
||||||
ykjoqian-cnwza-iwcjapey-lhwopey-cnwoo-opknwca-264[owacn]
|
|
||||||
lnkfaypeha-oywrajcan-dqjp-zalwnpiajp-108[apjnl]
|
|
||||||
ktwbhtvmbox-yehpxk-mktbgbgz-293[cndif]
|
|
||||||
hqcfqwydw-cqwdujys-rqiauj-qsgkyiyjyed-738[qydjw]
|
|
||||||
amlqskcp-epybc-zyqicr-kylyeckclr-600[sdrzj]
|
|
||||||
bnmrtldq-fqzcd-rbzudmfdq-gtms-zbpthrhshnm-443[dmbhq]
|
|
||||||
nwlddtqtpo-nlyoj-nzletyr-epnsyzwzrj-379[tyrzv]
|
|
||||||
cvabijtm-kpwkwtibm-lmxtwgumvb-980[mbtwi]
|
|
||||||
amlqskcp-epybc-afmamjyrc-jyzmpyrmpw-574[mpyac]
|
|
||||||
aflwjfslagfsd-vqw-dstgjslgjq-424[sfgjl]
|
|
||||||
willimcpy-zfiqyl-xymcah-110[ilycm]
|
|
||||||
kpvgtpcvkqpcn-lgnnadgcp-ujkrrkpi-128[knmqz]
|
|
||||||
wyvqljapsl-buzahisl-ibuuf-lunpullypun-409[wyhza]
|
|
||||||
amlqskcp-epybc-pyzzgr-pcacgtgle-210[cpgae]
|
|
||||||
xtwtelcj-rclop-mldvpe-dstaatyr-821[nkabu]
|
|
||||||
pdjqhwlf-gbh-sxufkdvlqj-751[cdmbz]
|
|
||||||
wkqxodsm-zvkcdsm-qbkcc-ecob-docdsxq-432[cdkoq]
|
|
||||||
xjmmjndqz-wpiit-gjbdnodxn-811[djnim]
|
|
||||||
zlkprjbo-doxab-zelzlixqb-absbilmjbkq-939[blzai]
|
|
||||||
htqtwkzq-xhfajsljw-mzsy-ywfnsnsl-619[lfsnu]
|
|
||||||
zhdsrqlchg-mhoobehdq-xvhu-whvwlqj-361[hqdlo]
|
|
||||||
tcfkqcevkxg-tcorcikpi-ejqeqncvg-uvqtcig-544[lsyzm]
|
|
||||||
kwtwznct-kivlg-zmamizkp-824[ixjen]
|
|
||||||
bkzrrhehdc-qzaahs-rghoohmf-287[hraoz]
|
|
||||||
lxuxaodu-mhn-cajrwrwp-303[aruwx]
|
|
||||||
tcorcikpi-dcumgv-octmgvkpi-700[vygzd]
|
|
||||||
crwwv-zlkprjbo-doxab-yxphbq-bkdfkbbofkd-809[bkdof]
|
|
||||||
xgvnndadzy-xcjxjgvoz-ncdkkdib-447[dnxcg]
|
|
||||||
elrkdcdugrxv-fkrfrodwh-xvhu-whvwlqj-179[eubfs]
|
|
||||||
odkasqzuo-rxaiqd-eqdhuoqe-430[nlyts]
|
|
||||||
vhglnfxk-zktwx-xzz-xgzbgxxkbgz-917[xzgkb]
|
|
||||||
jyfvnlupj-wyvqljapsl-jovjvshal-zlycpjlz-357[jlvpy]
|
|
||||||
gpbepvxcv-eaphixr-vgphh-gtrtxkxcv-687[pvxgh]
|
|
||||||
jrncbavmrq-zntargvp-qlr-qrirybczrag-741[dnzpg]
|
|
||||||
hqfxxnknji-hfsid-knsfshnsl-307[wtfhe]
|
|
||||||
aietsrmdih-nippcfier-stivexmsrw-750[iersm]
|
|
||||||
glrcplyrgmlyj-pyzzgr-pcqcypaf-912[nkoyv]
|
|
||||||
ugfkmewj-yjsvw-hdsklau-yjskk-sfsdqkak-216[ksjad]
|
|
||||||
mhi-lxvkxm-vtgwr-kxtvjnblbmbhg-917[bmvxg]
|
|
||||||
tipfxvezt-irsszk-kvtyefcfxp-451[fteik]
|
|
||||||
jxdkbqfz-mixpqfz-doxpp-qoxfkfkd-939[fxdkp]
|
|
||||||
dsxxw-pyzzgr-qrmpyec-288[prxyz]
|
|
||||||
ejpanjwpekjwh-fahhuxawj-ajcejaanejc-394[jaehw]
|
|
||||||
pinovwgz-xgvnndadzy-xviyt-vxlpdndodji-109[dnvix]
|
|
||||||
szfyrqriuflj-upv-rercpjzj-243[jprqg]
|
|
||||||
dmbttjgjfe-gmpxfs-efqbsunfou-701[fbegj]
|
|
||||||
sgmtkzoi-inuiurgzk-ykxboiky-436[qlcfs]
|
|
||||||
slqryzjc-djmucp-ylyjwqgq-158[jqycl]
|
|
||||||
aflwjfslagfsd-vqw-hmjuzskafy-398[fasjl]
|
|
||||||
slqryzjc-djmucp-pcacgtgle-886[cgjlp]
|
|
||||||
qjopwxha-ywjzu-ajcejaanejc-420[zoehr]
|
|
||||||
amjmpdsj-njyqrga-epyqq-kylyeckclr-756[yksln]
|
|
||||||
zlkprjbo-doxab-zxkav-zlxqfkd-abpfdk-445[kabdx]
|
|
||||||
lhkhszqx-fqzcd-bgnbnkzsd-nodqzshnmr-989[nzdhq]
|
|
||||||
dlhwvupglk-ibuuf-klwhyatlua-591[dzktb]
|
|
||||||
dpotvnfs-hsbef-cbtlfu-ufdiopmphz-623[homsd]
|
|
||||||
ajvyjprwp-npp-mnbrpw-875[pjnrw]
|
|
||||||
lxwbdvna-pajmn-snuuhknjw-mnyuxhvnwc-251[nuwah]
|
|
||||||
vetllbybxw-lvtoxgzxk-angm-xgzbgxxkbgz-865[mknli]
|
|
||||||
aflwjfslagfsd-jsehsyafy-usfvq-vwkayf-268[fsayj]
|
|
||||||
xjgjmapg-agjrzm-gvwjmvojmt-291[jgmav]
|
|
||||||
plolwdub-judgh-iorzhu-dqdobvlv-465[dloub]
|
|
||||||
htqtwkzq-wfggny-fsfqdxnx-645[wsznf]
|
|
||||||
fkqbokxqflkxi-zxkav-zlxqfkd-jxohbqfkd-341[kxfqb]
|
|
||||||
oxjmxdfkd-avb-tlohpelm-653[dlmox]
|
|
||||||
xtwtelcj-rclop-nsznzwlep-epnsyzwzrj-873[zelnp]
|
|
||||||
rtqlgevkng-gii-ceswkukvkqp-466[kgeiq]
|
|
||||||
molgbzqfib-yrkkv-ixyloxqlov-237[lobik]
|
|
||||||
zbytomdsvo-mrymyvkdo-nocsqx-848[pahef]
|
|
||||||
szfyrqriuflj-treup-tfrkzex-ivtvzmzex-867[xejut]
|
|
||||||
upq-tfdsfu-kfmmzcfbo-mphjtujdt-909[fmtud]
|
|
||||||
ykhknbqh-lhwopey-cnwoo-bejwjyejc-342[hwxgn]
|
|
||||||
qfkkj-nsznzwlep-nzyeltyxpye-327[vkmwy]
|
|
||||||
excdklvo-zvkcdsm-qbkcc-psxkxmsxq-900[cvoiz]
|
|
||||||
dszphfojd-dboez-dpbujoh-xpsltipq-623[zbxem]
|
|
||||||
udpsdjlqj-iorzhu-ghsorbphqw-517[hdjop]
|
|
||||||
xcitgcpixdcpa-ide-htrgti-gpqqxi-gthtpgrw-609[gitpc]
|
|
||||||
cybyjqho-whqtu-uww-tuiywd-348[styfx]
|
|
||||||
yuxufmdk-sdmpq-nmewqf-oazfmuzyqzf-924[hfsly]
|
|
||||||
tfejldvi-xiruv-avccpsvre-crsfirkfip-997[rxygp]
|
|
||||||
wsvsdkbi-qbkno-oqq-wkxkqowoxd-822[koqwb]
|
|
||||||
qcbgiasf-ufors-tzcksf-sbuwbssfwbu-610[ivjsc]
|
|
||||||
vkrhzxgbv-wrx-lmhktzx-839[xhkrv]
|
|
||||||
xmrrq-bwddqtwsf-vwnwdghewfl-242[fpmoq]
|
|
||||||
kmjezxodgz-nxvqzibzm-cpio-gjbdnodxn-577[isocd]
|
|
||||||
iutyaskx-mxgjk-kmm-jkyomt-436[kmjtx]
|
|
||||||
ide-htrgti-snt-rjhidbtg-htgkxrt-531[tghir]
|
|
||||||
vkppo-uww-bqrehqjeho-764[xmntl]
|
|
||||||
bdavqofuxq-pkq-ymzmsqyqzf-196[qfmyz]
|
|
||||||
diozmivodjivg-hvbizodx-zbb-ozxcijgjbt-915[zueag]
|
|
||||||
cybyjqho-whqtu-hqrryj-bqrehqjeho-374[hqjry]
|
|
||||||
vcibutulxiom-vohhs-lywycpcha-630[owyks]
|
|
||||||
chnylhuncihuf-wuhxs-fiacmncwm-786[chnuf]
|
|
||||||
xekdwvwnzkqo-ywjzu-ykwpejc-wymqeoepekj-264[dmbln]
|
|
||||||
etyyx-cxd-vnqjrgno-391[hntfq]
|
|
||||||
pwcvonofrcig-dfcxsqhwzs-qobrm-qighcasf-gsfjwqs-194[scfqg]
|
|
||||||
xgvnndadzy-ezggtwzvi-nojmvbz-837[vnsth]
|
|
||||||
dszphfojd-qmbtujd-hsbtt-usbjojoh-467[rskch]
|
|
||||||
npmhcargjc-aylbw-amyrgle-yaosgqgrgml-886[galmr]
|
|
||||||
qczcftiz-gqojsbusf-vibh-twbobqwbu-350[bnsiu]
|
|
||||||
kwvacumz-ozilm-kzgwomvqk-xtiabqk-oziaa-twoqabqka-980[akoqz]
|
|
||||||
dsxxw-zyqicr-cleglccpgle-418[clegx]
|
|
||||||
jrncbavmrq-cynfgvp-tenff-ynobengbel-611[nbefc]
|
|
||||||
hqtyeqsjylu-fbqijys-whqii-tuiywd-322[mitks]
|
|
||||||
rnqnyfwd-lwfij-wfggny-xmnuunsl-697[tseia]
|
|
||||||
fhezusjybu-rqiauj-udwyduuhydw-868[ngyzs]
|
|
||||||
pkl-oaynap-ywjzu-ykwpejc-opknwca-628[pakwy]
|
|
||||||
nuatmlmdpage-vqxxknqmz-geqd-fqefuzs-508[romxa]
|
|
||||||
awzwhofm-ufors-qobrm-qcohwbu-hsqvbczcum-948[obchm]
|
|
||||||
dfcxsqhwzs-rms-fsgsofqv-766[sfqcd]
|
|
||||||
wlqqp-tyftfcrkv-rercpjzj-711[rcfjp]
|
|
||||||
clotzlnetgp-awldetn-rcldd-nzyeltyxpye-743[letdn]
|
|
||||||
lgh-kwujwl-hdsklau-yjskk-vwhsjlewfl-788[lkwhj]
|
|
||||||
uqtqbizg-ozilm-kivlg-kwibqvo-uizsmbqvo-512[iqbov]
|
|
||||||
vetllbybxw-lvtoxgzxk-angm-kxlxtkva-683[xlktv]
|
|
||||||
qyujihctyx-mwupyhayl-bohn-uwkocmcncih-760[chyui]
|
|
||||||
crwwv-zxkav-obzbfsfkd-237[bfkvw]
|
|
||||||
qczcftiz-pogysh-igsf-hsghwbu-610[tnjwm]
|
|
||||||
udpsdjlqj-gbh-hqjlqhhulqj-725[hjqld]
|
|
||||||
yuxufmdk-sdmpq-nmewqf-emxqe-326[meqdf]
|
|
||||||
molgbzqfib-ciltbo-ildfpqfzp-653[bfilo]
|
|
||||||
uwtojhynqj-gfxpjy-ywfnsnsl-151[jnyfs]
|
|
||||||
qvbmzvibqwvit-jiasmb-camz-bmabqvo-330[bmvai]
|
|
||||||
xmtjbzidx-xviyt-xjvodib-xpnojhzm-nzmqdxz-603[torgb]
|
|
||||||
ykjoqian-cnwza-fahhuxawj-qoan-paopejc-628[ajnoc]
|
|
||||||
gvcskirmg-veffmx-irkmriivmrk-906[imrkv]
|
|
||||||
njmjubsz-hsbef-dboez-dpbujoh-bdrvjtjujpo-649[astyb]
|
|
||||||
ovbunmneqbhf-pnaql-pbngvat-jbexfubc-845[yzqwm]
|
|
||||||
joufsobujpobm-kfmmzcfbo-usbjojoh-571[mkpnw]
|
|
||||||
lzfmdshb-cxd-lzmzfdldms-287[dlmzf]
|
|
||||||
froruixo-mhoobehdq-pdunhwlqj-439[ohdqr]
|
|
||||||
xcitgcpixdcpa-rpcsn-rdpixcv-bpcpvtbtci-193[cpitx]
|
|
||||||
dfcxsqhwzs-ksodcbwnsr-xszzmpsob-rsgwub-168[sbwzc]
|
|
||||||
iuruxlar-lruckx-sgtgmksktz-436[krugl]
|
|
||||||
nbhofujd-dboez-fohjoffsjoh-467[ofhjb]
|
|
||||||
pejji-tovvilokx-nozvyiwoxd-276[bzkve]
|
|
||||||
bxaxipgn-vgpst-rpcsn-rdpixcv-rjhidbtg-htgkxrt-583[upjyv]
|
|
||||||
bkzrrhehdc-bzmcx-bnzshmf-lzqjdshmf-443[hzbmc]
|
|
||||||
dpssptjwf-gmpxfs-mphjtujdt-571[pjstd]
|
|
||||||
pdjqhwlf-sodvwlf-judvv-orjlvwlfv-829[tuszv]
|
|
||||||
mfklstdw-tmffq-wfyafwwjafy-918[wmvan]
|
|
||||||
joufsobujpobm-ezf-gjobodjoh-779[xwadm]
|
|
||||||
hafgnoyr-gbc-frperg-rtt-grpuabybtl-481[jcgnd]
|
|
||||||
joufsobujpobm-fhh-tijqqjoh-233[johbf]
|
|
||||||
zuv-ykixkz-vrgyzoi-mxgyy-yzuxgmk-150[yzgkx]
|
|
||||||
ibghopzs-qvcqczohs-qighcasf-gsfjwqs-948[ubrmn]
|
|
||||||
qfmcusbwq-pwcvonofrcig-foppwh-fsgsofqv-584[focpq]
|
|
||||||
aczupnetwp-awldetn-rcldd-qtylyntyr-119[tdlny]
|
|
||||||
dpssptjwf-ezf-sfdfjwjoh-909[znfwy]
|
|
||||||
qxdwpopgsdjh-ytaanqtpc-pcpanhxh-297[pahcd]
|
|
||||||
ucynmlgxcb-aylbw-rpyglgle-626[lgybc]
|
|
||||||
oqnidbshkd-okzrshb-fqzrr-rdquhbdr-573[rdbhq]
|
|
||||||
frqvxphu-judgh-fdqgb-vhuylfhv-647[hfuvd]
|
|
||||||
vhehkyne-cxeeruxtg-hixktmbhgl-319[ehxgk]
|
|
||||||
gsrwyqiv-kvehi-gerhc-gsexmrk-vigimzmrk-412[girek]
|
|
||||||
ajmrxjlcren-yujbcrl-pajbb-bnaerlnb-719[lvzpq]
|
|
||||||
zixppfcfba-bdd-bkdfkbbofkd-393[hnmcz]
|
|
||||||
aflwjfslagfsd-hdsklau-yjskk-ugflsafewfl-918[flsak]
|
|
||||||
xtwtelcj-rclop-upwwjmply-nzyeltyxpye-847[lpyet]
|
|
||||||
oaddaeuhq-qss-dqmocgueufuaz-924[qzwti]
|
|
||||||
tvsnigxmpi-wgezirkiv-lyrx-hitpscqirx-568[irxgp]
|
|
||||||
ksodcbwnsr-qczcftiz-gqojsbusf-vibh-igsf-hsghwbu-272[sbcfg]
|
|
||||||
sgmtkzoi-jek-gtgreyoy-410[tqkns]
|
|
||||||
rzvkjiduzy-kgvnodx-bmvnn-omvdidib-109[fpsxk]
|
|
||||||
diozmivodjivg-rzvkjiduzy-zbb-adivixdib-447[nayqm]
|
|
||||||
froruixo-vfdyhqjhu-kxqw-rshudwlrqv-517[rhqud]
|
|
||||||
dmpuamofuhq-dmnnuf-ymzmsqyqzf-222[mwnak]
|
|
||||||
mybbycsfo-zvkcdsm-qbkcc-wkbuodsxq-380[bcksd]
|
|
||||||
tcrjjzwzvu-wcfnvi-vexzevvizex-633[vzeci]
|
|
||||||
qzoggwtwsr-gqojsbusf-vibh-hsqvbczcum-870[sbgqc]
|
|
||||||
enzcntvat-cynfgvp-tenff-phfgbzre-freivpr-845[xnfot]
|
|
||||||
gsvvswmzi-gerhc-gsexmrk-stivexmsrw-984[segmr]
|
|
||||||
fhezusjybu-vbemuh-iqbui-244[iektm]
|
|
||||||
oqnidbshkd-idkkxadzm-qdzbpthrhshnm-469[gekyh]
|
|
||||||
pybgmyargtc-cee-nspafyqgle-574[egyac]
|
|
||||||
jyddc-gerhc-gsexmrk-vigimzmrk-672[gmrcd]
|
|
||||||
tipfxvezt-gcrjkzt-xirjj-rercpjzj-399[ldquc]
|
|
||||||
bdavqofuxq-bxmefuo-sdmee-dqeqmdot-768[hwmck]
|
|
||||||
fbebmtkr-zktwx-vtgwr-hixktmbhgl-475[tbkgh]
|
|
||||||
irgyyolokj-igtje-iugzotm-rumoyzoiy-202[mpijw]
|
|
||||||
fbebmtkr-zktwx-xzz-kxlxtkva-865[yicwo]
|
|
||||||
tyepcyletzylw-dnlgpyrpc-sfye-nfdezxpc-dpcgtnp-145[badwi]
|
|
||||||
vrurcjah-pajmn-ljwmh-anbnjalq-849[ajnhl]
|
|
||||||
rtqlgevkng-ecpfa-fgukip-700[gefkp]
|
|
||||||
pdjqhwlf-froruixo-udeelw-wudlqlqj-907[kymab]
|
|
||||||
tinnm-xszzmpsob-qcbhowbasbh-688[nhcdm]
|
|
||||||
nij-mywlyn-wuhxs-lywycpcha-318[ywchl]
|
|
||||||
fnjyxwrinm-ouxfna-ldbcxvna-bnaerln-979[naxbf]
|
|
||||||
ajvyjprwp-bljenwpna-qdwc-anjlzdrbrcrxw-823[jrwan]
|
|
||||||
diozmivodjivg-wpiit-mzxzdqdib-551[kmhon]
|
|
||||||
nij-mywlyn-dyffsvyuh-xyjfisgyhn-656[yfnhi]
|
|
||||||
fhezusjybu-zubboruqd-vydqdsydw-504[dubyq]
|
|
||||||
ubhatstkwhnl-lvtoxgzxk-angm-kxvxbobgz-579[xbgkt]
|
|
||||||
xcitgcpixdcpa-rwdrdapit-htgkxrth-557[zastp]
|
|
||||||
wfintfhynaj-jll-hzxytrjw-xjwanhj-281[jhnwa]
|
|
||||||
irgyyolokj-vrgyzoi-mxgyy-rumoyzoiy-800[sptbo]
|
|
||||||
jvyyvzpcl-yhkpvhjapcl-ibuuf-aljouvsvnf-227[vjlpu]
|
|
||||||
iruzfrtkzmv-treup-kirzezex-841[rzeik]
|
|
||||||
cxy-bnlanc-ljwmh-ujkxajcxah-979[waqkz]
|
|
||||||
qzoggwtwsr-foppwh-difqvogwbu-948[wgofp]
|
|
||||||
qyujihctyx-dyffsvyuh-zchuhwcha-552[hycuf]
|
|
||||||
yknnkoera-lhwopey-cnwoo-pnwejejc-992[enowc]
|
|
||||||
zovldbkfz-zxkav-zlxqfkd-xkxivpfp-289[vtcos]
|
|
||||||
mrxivrexmsrep-glsgspexi-erepcwmw-750[btrnl]
|
|
||||||
udskkaxawv-kusnwfywj-zmfl-dgyaklauk-866[xeozd]
|
|
||||||
esyfwlau-tmffq-vwnwdghewfl-632[czoml]
|
|
||||||
hjgbwuladw-kusnwfywj-zmfl-esfsywewfl-294[xwfie]
|
|
||||||
hwbba-rncuvke-itcuu-ocpcigogpv-232[cubgi]
|
|
||||||
vhkkhlbox-vtgwr-xgzbgxxkbgz-631[typnq]
|
|
||||||
nvrgfezqvu-szfyrqriuflj-vxx-jkfirxv-139[krijl]
|
|
||||||
iuruxlar-zuv-ykixkz-lruckx-xkykgxin-826[kxuir]
|
|
||||||
yhwooebeaz-ywjzu-yqopkian-oanreya-966[ynwkb]
|
|
||||||
iuxxuyobk-pkrrehkgt-xkgiwaoyozout-176[sjwtp]
|
|
||||||
glrcplyrgmlyj-djmucp-qrmpyec-236[clmpr]
|
|
||||||
pejji-tovvilokx-bocokbmr-588[obijk]
|
|
||||||
hplazytkpo-upwwjmply-dpcgtnpd-119[pdltw]
|
|
||||||
nij-mywlyn-xsy-jolwbumcha-136[yjlmn]
|
|
||||||
pynffvsvrq-ohaal-fgbentr-923[fanrv]
|
|
||||||
lgh-kwujwl-kusnwfywj-zmfl-kwjnauwk-736[wkjlu]
|
|
||||||
dszphfojd-sbccju-mbcpsbupsz-727[sbcpd]
|
|
||||||
ixeumktoi-lruckx-zkinturume-800[ktsyl]
|
|
||||||
fmsledevhsyw-tvsnigxmpi-veffmx-viwievgl-412[veifm]
|
|
||||||
mrxivrexmsrep-fyrrc-qevoixmrk-880[wtmdx]
|
|
||||||
qmpmxevc-kvehi-wgezirkiv-lyrx-wlmttmrk-620[zyxjd]
|
|
||||||
zixppfcfba-oxyyfq-qbzeklildv-289[fbilp]
|
|
||||||
nwlddtqtpo-dnlgpyrpc-sfye-wlmzclezcj-431[jefsy]
|
|
||||||
tinnm-foppwh-oqeiwgwhwcb-688[fzyjx]
|
|
||||||
plolwdub-judgh-fdqgb-ghyhorsphqw-413[hystk]
|
|
||||||
bwx-amkzmb-zijjqb-bmkpvwtwog-460[bmwjk]
|
|
||||||
qcbgiasf-ufors-pibbm-ghcfous-896[bfscg]
|
|
||||||
ktwbhtvmbox-vetllbybxw-cxeeruxtg-tgterlbl-215[tmybs]
|
|
||||||
lqwhuqdwlrqdo-mhoobehdq-vwrudjh-387[dhqow]
|
|
||||||
lgh-kwujwl-tskcwl-vwhdgqewfl-684[afnbs]
|
|
||||||
yuxufmdk-sdmpq-rxaiqd-efadmsq-976[mczye]
|
|
||||||
ftzgxmbv-unggr-kxlxtkva-917[ezfmx]
|
|
||||||
rmn-qcapcr-aylbw-amyrgle-ylyjwqgq-158[prcqj]
|
|
||||||
fhezusjybu-rqiauj-husuylydw-582[uyhjs]
|
|
||||||
apuut-xviyt-xjvodib-yzkvmohzio-525[yomvc]
|
|
||||||
mybbycsfo-dyz-combod-zvkcdsm-qbkcc-oxqsxoobsxq-848[obcsd]
|
|
||||||
yhwooebeaz-lhwopey-cnwoo-zalhkuiajp-706[oaehw]
|
|
||||||
bqxnfdmhb-bzmcx-trdq-sdrshmf-469[zdyht]
|
|
||||||
dmpuamofuhq-vqxxknqmz-pqbmdfyqzf-924[qmfdp]
|
|
||||||
kmjezxodgz-ytz-mzvxlpdndodji-889[gefcn]
|
|
||||||
apuut-xviyt-xjvodib-mznzvmxc-369[vximt]
|
|
||||||
fodvvlilhg-surmhfwloh-hjj-hqjlqhhulqj-647[hljqf]
|
|
||||||
tipfxvezt-srjbvk-tljkfdvi-jvimztv-269[vtijf]
|
|
||||||
ikhcxvmbex-xzz-labiibgz-423[qnzsg]
|
|
||||||
qzchnzbshud-azrjds-lzmzfdldms-885[xubgy]
|
|
||||||
eadalsjq-yjsvw-vqw-esjcwlafy-398[ajswe]
|
|
||||||
oxmeeuruqp-bxmefuo-sdmee-etubbuzs-898[stupo]
|
|
||||||
frqvxphu-judgh-xqvwdeoh-fdqgb-frdwlqj-zrunvkrs-257[dqrfh]
|
|
||||||
ltpedcxots-gpbepvxcv-qphzti-igpxcxcv-349[jzdyi]
|
|
||||||
vhkkhlbox-vtgwr-phkdlahi-969[tmszy]
|
|
||||||
cvabijtm-jcvvg-lmdmtwxumvb-226[nvfca]
|
|
||||||
sedikcuh-whqtu-sqdto-qsgkyiyjyed-790[dqsye]
|
|
||||||
gzefmnxq-bdavqofuxq-rxaiqd-ymzmsqyqzf-690[zklij]
|
|
||||||
zntargvp-cynfgvp-tenff-qrcyblzrag-351[sqzyh]
|
|
||||||
xfbqpojafe-dboez-xpsltipq-857[ehgum]
|
|
||||||
uqtqbizg-ozilm-jcvvg-lmaqov-980[xzwsi]
|
|
||||||
xjgjmapg-ezggtwzvi-xpnojhzm-nzmqdxz-161[zgjmx]
|
|
||||||
muqfedyput-vbemuh-fkhsxqiydw-920[udefh]
|
|
||||||
kzeed-gfxpjy-ywfnsnsl-489[xeoyn]
|
|
||||||
pynffvsvrq-onfxrg-ynobengbel-741[nfbeg]
|
|
||||||
froruixo-iorzhu-rshudwlrqv-647[rouhi]
|
|
||||||
amjmpdsj-qaytclecp-fslr-qyjcq-938[cjqal]
|
|
||||||
otzkxtgzoutgr-jek-iayzuskx-ykxboik-826[kotxz]
|
|
||||||
tpspahyf-nyhkl-jhukf-zavyhnl-279[hyafk]
|
|
||||||
pualyuhapvuhs-ihzrla-ylhjxbpzpapvu-929[lbncu]
|
|
||||||
odiih-ajkkrc-mnbrpw-355[ikrab]
|
|
||||||
votubcmf-gmpxfs-bdrvjtjujpo-363[jbfmo]
|
|
||||||
zgmfyxypbmsq-rmn-qcapcr-bwc-pcacgtgle-704[ztspm]
|
|
||||||
uqtqbizg-ozilm-nchhg-jiasmb-ivitgaqa-382[snpaf]
|
|
||||||
willimcpy-jfumncw-alumm-lyuwkocmcncih-734[cmliu]
|
|
||||||
ibghopzs-qvcqczohs-hsqvbczcum-506[chqsz]
|
|
||||||
ugjjgkanw-tmffq-vwkayf-216[lfrby]
|
|
||||||
pynffvsvrq-pnaql-erprvivat-507[vpraf]
|
|
||||||
aczupnetwp-nlyoj-nzletyr-pyrtyppctyr-197[pytnr]
|
|
||||||
vkppo-sqdto-seqjydw-bewyijysi-686[sydei]
|
|
||||||
dpotvnfs-hsbef-ezf-qvsdibtjoh-337[fsbde]
|
|
||||||
wlqqp-avccpsvre-ivtvzmzex-425[vcepq]
|
|
||||||
jfifqxov-doxab-gbiivybxk-jxohbqfkd-549[skgzo]
|
|
||||||
rgndvtcxr-jchipqat-rpcsn-igpxcxcv-713[cprxg]
|
|
||||||
ykhknbqh-xqjju-wymqeoepekj-576[ejkqh]
|
|
||||||
pejji-mrymyvkdo-domrxyvyqi-536[ymdij]
|
|
||||||
wihmogyl-aluxy-xsy-womnigyl-mylpcwy-786[ylmwg]
|
|
||||||
jlidywncfy-zfiqyl-mbcjjcha-162[cjyfi]
|
|
||||||
pynffvsvrq-sybjre-grpuabybtl-455[byavk]
|
|
||||||
uqtqbizg-ozilm-uiovmbqk-akidmvomz-pcvb-bziqvqvo-694[xywnk]
|
|
||||||
lxaaxbren-ouxfna-ydalqjbrwp-225[mibtg]
|
|
||||||
joufsobujpobm-kfmmzcfbo-dvtupnfs-tfswjdf-675[ijokq]
|
|
||||||
crwwv-gbiivybxk-pqloxdb-913[rtmzn]
|
|
||||||
pkl-oaynap-nwxxep-bejwjyejc-576[jfmel]
|
|
||||||
wfummczcyx-gcfcnuls-aluxy-wuhxs-wihnuchgyhn-786[giqsn]
|
|
||||||
htsxzrjw-lwfij-ojqqdgjfs-ijajqturjsy-229[tjxbs]
|
|
||||||
qczcftiz-foppwh-rsgwub-246[exnyt]
|
|
||||||
lnkfaypeha-xwogap-naoawnyd-342[zynls]
|
|
||||||
thnulapj-zjhclunly-obua-thuhnltlua-201[luhan]
|
|
||||||
vkppo-fbqijys-whqii-bqrehqjeho-504[lkosn]
|
|
||||||
eqpuwogt-itcfg-ecpfa-qrgtcvkqpu-622[cgpqt]
|
|
||||||
odkasqzuo-oazegyqd-sdmpq-otaoaxmfq-efadmsq-222[aoqdm]
|
|
||||||
ide-htrgti-bxaxipgn-vgpst-qjccn-pcpanhxh-453[pcghi]
|
|
||||||
luxciuwncpy-jfumncw-alumm-xyjulngyhn-552[unclm]
|
|
||||||
plolwdub-judgh-hjj-zrunvkrs-777[yfulq]
|
|
||||||
pejji-lexxi-oxqsxoobsxq-458[xoeij]
|
|
||||||
uzfqdzmfuazmx-pkq-fdmuzuzs-170[npsqv]
|
|
||||||
bknsykmdsfo-zvkcdsm-qbkcc-cdybkqo-614[fastx]
|
|
||||||
qfkkj-upwwjmply-qtylyntyr-873[yjklp]
|
|
||||||
hqcfqwydw-zubboruqd-ijehqwu-218[djvhz]
|
|
||||||
kmjezxodgz-pinovwgz-zbb-ncdkkdib-473[vimty]
|
|
||||||
bknsykmdsfo-myvybpev-mkxni-mykdsxq-bocokbmr-562[sdwfr]
|
|
||||||
eqttqukxg-gii-hkpcpekpi-960[yljdr]
|
|
||||||
drxevkzt-wcfnvi-cfxzjkztj-607[twoxz]
|
|
||||||
vkppo-rkddo-ijehqwu-504[dkope]
|
|
||||||
rgllk-rxaiqd-dqmocgueufuaz-456[mxkzr]
|
|
||||||
ktiaaqnqml-moo-xczkpiaqvo-122[aoqik]
|
|
||||||
amjmpdsj-njyqrga-epyqq-pcqcypaf-600[pqajy]
|
|
||||||
rwcnawjcrxwju-npp-ujkxajcxah-199[jacwx]
|
|
||||||
fmsledevhsyw-gspsvjyp-gerhc-gsexmrk-ywiv-xiwxmrk-412[segmr]
|
|
||||||
ajmrxjlcren-kdwwh-anbnjalq-745[myzet]
|
|
||||||
aoubshwq-tinnm-suu-fsoqeiwgwhwcb-480[wsubh]
|
|
||||||
rdggdhxkt-rpcsn-hpath-531[tsamh]
|
|
||||||
pbafhzre-tenqr-pnaql-pbngvat-nanylfvf-715[upmid]
|
|
||||||
zbytomdsvo-cmkfoxqob-rexd-gybucryz-562[obycd]
|
|
||||||
bkwzkqsxq-mkxni-ecob-docdsxq-978[ksmtq]
|
|
||||||
oknkvcta-itcfg-ecpfa-ncdqtcvqta-414[lcwjp]
|
|
||||||
fydelmwp-clmmte-cpnptgtyr-405[jlgak]
|
|
||||||
tcorcikpi-ecpfa-gpikpggtkpi-804[picgk]
|
|
||||||
xtwtelcj-rclop-upwwjmply-hzcvdsza-327[clpwj]
|
|
||||||
tcfkqcevkxg-ecpfa-eqcvkpi-ncdqtcvqta-752[cqekt]
|
|
||||||
etaqigpke-tcddkv-uvqtcig-440[tcdeg]
|
|
||||||
raphhxuxts-qxdwpopgsdjh-rpcsn-rdpixcv-sthxvc-843[tvexn]
|
|
||||||
atyzghrk-xghhoz-ktmotkkxotm-748[kthog]
|
|
||||||
fmsledevhsyw-nippcfier-asvowlst-412[zksal]
|
|
||||||
oaxadrgx-eomhqzsqd-tgzf-eqdhuoqe-846[zfylm]
|
|
||||||
qcbgiasf-ufors-dzoghwq-ufogg-qcbhowbasbh-194[bgofh]
|
|
||||||
qvbmzvibqwvit-bwx-amkzmb-jiasmb-xczkpiaqvo-122[bimva]
|
|
||||||
qfkkj-prr-hzcvdsza-639[dqmts]
|
|
||||||
jvyyvzpcl-ibuuf-bzly-alzapun-981[mnakf]
|
|
||||||
dsxxw-cee-pcacgtgle-626[odsgr]
|
|
||||||
buzahisl-zjhclunly-obua-zlycpjlz-617[rsglh]
|
|
||||||
gpewwmjmih-tpewxmg-kveww-jmrergmrk-594[mwegr]
|
|
||||||
aietsrmdih-hci-stivexmsrw-516[hsvof]
|
|
||||||
ujoon-ytaanqtpc-stepgibtci-219[tacin]
|
|
||||||
kpvgtpcvkqpcn-fag-ceswkukvkqp-830[cijob]
|
|
||||||
etaqigpke-uecxgpigt-jwpv-ocpcigogpv-154[gpcei]
|
|
||||||
eqnqthwn-tcddkv-rwtejcukpi-674[tcdek]
|
|
||||||
mhi-lxvkxm-ktuubm-nlxk-mxlmbgz-241[mxklb]
|
|
||||||
avw-zljyla-wshzapj-nyhzz-ylzlhyjo-149[plqkx]
|
|
||||||
xekdwvwnzkqo-nwxxep-odellejc-862[xyzwn]
|
|
||||||
pkl-oaynap-bhksan-qoan-paopejc-498[ojduv]
|
|
||||||
xjinphzm-bmvyz-xjgjmapg-ezggtwzvi-zibdizzmdib-499[zigmb]
|
|
||||||
bdavqofuxq-rxaiqd-bgdotmeuzs-508[clbmv]
|
|
||||||
xzwrmkbqtm-jcvvg-ewzsapwx-902[wmvxz]
|
|
||||||
dmybmsuzs-rxaiqd-xmnadmfadk-846[dmasx]
|
|
||||||
surmhfwloh-exqqb-vwrudjh-127[hqruw]
|
|
||||||
gntmfefwitzx-ojqqdgjfs-xytwflj-827[xgtuv]
|
|
||||||
tbxmlkfwba-zxkav-zlxqfkd-ildfpqfzp-965[jncig]
|
|
||||||
sbnqbhjoh-tdbwfohfs-ivou-qvsdibtjoh-597[rftxz]
|
|
||||||
hqcfqwydw-fbqijys-whqii-iqbui-322[iqwbf]
|
|
||||||
forwcoqhwjs-xszzmpsob-gvwddwbu-324[ftyzu]
|
|
||||||
zlilocri-oxjmxdfkd-ciltbo-pbosfzbp-991[gjars]
|
|
||||||
kwzzwaqdm-rmttgjmiv-uizsmbqvo-434[mziqt]
|
|
||||||
willimcpy-gcfcnuls-aluxy-mwupyhayl-bohn-yhachyylcha-162[kcimx]
|
|
||||||
uqtqbizg-ozilm-kivlg-uizsmbqvo-954[pifvj]
|
|
||||||
ugdgjxmd-tskcwl-wfyafwwjafy-762[wfadg]
|
|
||||||
ajyqqgdgcb-bwc-qyjcq-262[qcbgj]
|
|
||||||
yknnkoera-oywrajcan-dqjp-wjwhuoeo-602[oajnw]
|
|
||||||
bqxnfdmhb-qzaahs-rzkdr-963[abdhq]
|
|
||||||
dwbcjkun-mhn-jwjuhbrb-693[niusd]
|
|
||||||
wlqqp-wcfnvi-crsfirkfip-373[nrtqs]
|
|
||||||
guahyncw-wbiwifuny-xymcah-240[wyach]
|
|
||||||
qfkkj-prr-opgpwzaxpye-613[pkrae]
|
|
||||||
cqwdujys-tou-tufbeocudj-322[ucdjo]
|
|
||||||
wfruflnsl-wfggny-ijuqtdrjsy-931[wjznm]
|
|
||||||
bnqqnrhud-okzrshb-fqzrr-cdrhfm-105[rhqbd]
|
|
||||||
yhtwhnpun-tpspahyf-nyhkl-jovjvshal-zlycpjlz-487[hlpyj]
|
|
||||||
iutyaskx-mxgjk-hatte-lotgtiotm-176[shzku]
|
|
||||||
gntmfefwitzx-kqtbjw-xfqjx-645[nmfsa]
|
|
||||||
jvsvymbs-jhukf-jbzavtly-zlycpjl-695[frnkz]
|
|
||||||
dlhwvupglk-zjhclunly-obua-jvuahputlua-825[ulahj]
|
|
||||||
wyvqljapsl-jhukf-jvhapun-ylzlhyjo-487[jlhya]
|
|
||||||
ghkmaihex-hucxvm-lmhktzx-267[hmxka]
|
|
||||||
irgyyolokj-vrgyzoi-mxgyy-xkikobotm-670[ryfvl]
|
|
||||||
kwzzwaqdm-zijjqb-amzdqkma-564[qzdtv]
|
|
||||||
rflsjynh-idj-xytwflj-541[jflyd]
|
|
||||||
emixwvqhml-ntwemz-zmkmqdqvo-200[zmbdq]
|
|
||||||
kzgwomvqk-rmttgjmiv-abwziom-330[mtnsk]
|
|
||||||
xjgjmapg-wpiit-vivgtndn-499[weiza]
|
|
||||||
cebwrpgvyr-pnaql-grpuabybtl-117[xqmjc]
|
|
||||||
egdytrixat-uadltg-uxcpcrxcv-297[ctxad]
|
|
||||||
gvaaz-ezf-tfswjdft-623[fatzd]
|
|
||||||
excdklvo-mkxni-mykdsxq-mecdywob-cobfsmo-692[mocdk]
|
|
||||||
ovbunmneqbhf-pnaql-bcrengvbaf-351[mtgcw]
|
|
||||||
nwlddtqtpo-clmmte-nzyeltyxpye-509[ydnsh]
|
|
||||||
froruixo-udeelw-vwrudjh-309[sxgvu]
|
|
||||||
hqcfqwydw-sxesebqju-cqhaujydw-660[fghtp]
|
|
||||||
bpvctixr-rwdrdapit-ldgzhwde-895[sfioq]
|
|
||||||
ajmrxjlcren-yaxsnlcrun-bljenwpna-qdwc-fxatbqxy-797[fnjis]
|
|
||||||
lugjuacha-zfiqyl-uhufsmcm-370[uacfh]
|
|
||||||
houngfgxjuay-pkrrehkgt-iayzuskx-ykxboik-852[kguxy]
|
|
||||||
gcfcnuls-aluxy-luxciuwncpy-jfumncw-alumm-uhufsmcm-214[zftvs]
|
|
||||||
oxmeeuruqp-otaoaxmfq-emxqe-794[drzyv]
|
|
||||||
nvrgfezqvu-upv-tfekrzedvek-867[evfkr]
|
|
||||||
uwtojhynqj-xhfajsljw-mzsy-zxjw-yjxynsl-801[jyswx]
|
|
||||||
zixppfcfba-yxphbq-jxohbqfkd-887[zgoyn]
|
|
||||||
qczcftiz-qvcqczohs-aobousasbh-402[coqsz]
|
|
||||||
lejkrscv-upv-tfekrzedvek-919[ekvrc]
|
|
||||||
chnylhuncihuf-zfiqyl-zchuhwcha-604[magtu]
|
|
||||||
vetllbybxw-lvtoxgzxk-angm-ybgtgvbgz-605[gbltv]
|
|
||||||
dmpuamofuhq-omzpk-qzsuzqqduzs-820[quzmd]
|
|
||||||
rdggdhxkt-gpqqxi-rdcipxcbtci-219[yrlha]
|
|
||||||
tfejldvi-xiruv-wcfnvi-jvimztvj-243[fqclr]
|
|
||||||
foadouwbu-dzoghwq-ufogg-gvwddwbu-324[dgouw]
|
|
||||||
tbxmlkfwba-pzxsbkdbo-erkq-bkdfkbbofkd-913[hgans]
|
|
||||||
gpbepvxcv-rpcsn-itrwcdadvn-453[sbuap]
|
|
||||||
szfyrqriuflj-srjbvk-ivrthlzjzkzfe-633[sqwil]
|
|
||||||
jqwpihizlwca-jiasmb-ivitgaqa-122[amzud]
|
|
||||||
bqvvu-ywjzu-qoan-paopejc-264[ajopq]
|
|
||||||
mvydjvxodqz-wpiit-gvwjmvojmt-525[oabkn]
|
|
||||||
ktiaaqnqml-moo-zmikycqaqbqwv-252[qamik]
|
|
||||||
dpmpsgvm-cbtlfu-sfdfjwjoh-909[pntzm]
|
|
||||||
nzcczdtgp-nsznzwlep-qtylyntyr-171[nztyc]
|
|
||||||
htqtwkzq-idj-rfwpjynsl-723[ndmel]
|
|
||||||
gzefmnxq-nmewqf-eqdhuoqe-300[eqfmn]
|
|
||||||
qzlozfhmf-cxd-lzqjdshmf-469[fzdhl]
|
|
||||||
pinovwgz-mvydjvxodqz-xviyt-xjvodib-yzndbi-447[pztyh]
|
|
||||||
gspsvjyp-gerhc-gsexmrk-vieguymwmxmsr-256[gmser]
|
|
||||||
ygcrqpkbgf-tcfkqcevkxg-hnqygt-vtckpkpi-102[puovq]
|
|
||||||
jsehsyafy-tmffq-vwhdgqewfl-112[rnach]
|
|
||||||
qmpmxevc-kvehi-hci-eguymwmxmsr-204[mechi]
|
|
||||||
tcfkqcevkxg-tcorcikpi-gii-gpikpggtkpi-544[wytzs]
|
|
||||||
pbafhzre-tenqr-enzcntvat-onfxrg-ratvarrevat-845[raten]
|
|
||||||
shoewudys-rqiauj-bqrehqjeho-270[ehqjo]
|
|
||||||
xjinphzm-bmvyz-ojk-nzxmzo-ezggtwzvi-zibdizzmdib-577[zimbd]
|
|
||||||
rkpqxyib-bdd-pbosfzbp-939[bpdfi]
|
|
||||||
vcibutulxiom-vumeyn-omyl-nymncha-786[ziwys]
|
|
||||||
nvrgfezqvu-upv-ivrthlzjzkzfe-321[vzefr]
|
|
||||||
krxqjijamxdb-yujbcrl-pajbb-dbna-cnbcrwp-303[bjacr]
|
|
||||||
zixppfcfba-mixpqfz-doxpp-qbzeklildv-653[zdxgu]
|
|
||||||
lsyrkjkbnyec-mkxni-gybucryz-640[ykbcn]
|
|
||||||
qspkfdujmf-kfmmzcfbo-dpoubjonfou-155[fomub]
|
|
||||||
sno-rdbqds-rbzudmfdq-gtms-cdozqsldms-755[yaubo]
|
|
||||||
houngfgxjuay-vrgyzoi-mxgyy-ygrky-462[ygoru]
|
|
||||||
gcfcnuls-aluxy-wifilzof-yaa-omyl-nymncha-266[alycf]
|
|
||||||
hwdtljsnh-gzssd-xfqjx-463[fajso]
|
|
||||||
htwwtxnaj-idj-hzxytrjw-xjwanhj-281[hzrnq]
|
|
||||||
sorozgxe-mxgjk-lruckx-xkgiwaoyozout-176[oxgkr]
|
|
||||||
ynssr-vtgwr-vhtmbgz-ftgtzxfxgm-475[gtfmr]
|
|
||||||
rtqlgevkng-lgnnadgcp-yqtmujqr-648[nelzc]
|
|
||||||
kwtwznct-rmttgjmiv-camz-bmabqvo-460[nmbls]
|
|
||||||
surmhfwloh-fdqgb-wudlqlqj-959[lqdfh]
|
|
||||||
iutyaskx-mxgjk-hgyqkz-rumoyzoiy-644[ykgim]
|
|
||||||
jqwpihizlwca-kivlg-kwibqvo-wxmzibqwva-434[iwqva]
|
|
||||||
amppmqgtc-djmucp-asqrmkcp-qcptgac-496[cpmaq]
|
|
||||||
apuut-xjmmjndqz-wpiit-vivgtndn-187[intdj]
|
|
||||||
ftzgxmbv-vtgwr-wxlbzg-267[gbtvw]
|
|
||||||
eza-dpncpe-mldvpe-wlmzclezcj-171[eclpz]
|
|
||||||
rnqnyfwd-lwfij-wfggny-ijuqtdrjsy-827[fjnwy]
|
|
||||||
aflwjfslagfsd-xdgowj-ghwjslagfk-684[fgajl]
|
|
||||||
lzfmdshb-eknvdq-rsnqzfd-859[ybjfz]
|
|
||||||
hqtyeqsjylu-uww-tufbeocudj-582[uejqt]
|
|
||||||
qfkkj-nsznzwlep-dstaatyr-223[aknst]
|
|
||||||
ubhatstkwhnl-xzz-kxvxbobgz-267[umogq]
|
|
||||||
xekdwvwnzkqo-oywrajcan-dqjp-ykjpwejiajp-238[mtbvo]
|
|
||||||
cebwrpgvyr-sybjre-qrfvta-195[rbevy]
|
|
||||||
hjgbwuladw-usfvq-esfsywewfl-710[mpiho]
|
|
||||||
lujbbrornm-kjbtnc-fxatbqxy-823[ywamx]
|
|
||||||
ugjjgkanw-uzgugdslw-hmjuzskafy-476[stfoh]
|
|
||||||
fmsledevhsyw-fewoix-pefsvexsvc-724[scznt]
|
|
||||||
zlkprjbo-doxab-bdd-obzbfsfkd-419[bdofk]
|
|
||||||
vcibutulxiom-wuhxs-nluchcha-864[uchil]
|
|
||||||
yhkpvhjapcl-ihzrla-dvyrzovw-305[qyhmr]
|
|
||||||
hmsdqmzshnmzk-qzlozfhmf-qzaahs-zmzkxrhr-287[zhmqs]
|
|
||||||
gzefmnxq-dmnnuf-etubbuzs-482[nubef]
|
|
||||||
ejpanjwpekjwh-ywjzu-ykwpejc-nayaerejc-550[jewap]
|
|
||||||
cxy-bnlanc-npp-mnyuxhvnwc-433[nvmyt]
|
|
||||||
jfifqxov-doxab-gbiivybxk-obzbfsfkd-601[epyzn]
|
|
||||||
pkl-oaynap-xqjju-wjwhuoeo-680[joapu]
|
|
||||||
jef-iushuj-hqtyeqsjylu-rqiauj-bewyijysi-842[hyzgu]
|
|
||||||
dfcxsqhwzs-tzcksf-aobousasbh-896[wkqxh]
|
|
||||||
lahxpnwrl-ljwmh-bjunb-693[jtoyp]
|
|
||||||
rnqnyfwd-lwfij-gfxpjy-wjhjnansl-931[jnfwl]
|
|
||||||
buzahisl-jvyyvzpcl-jhukf-jvhapun-klwhyatlua-617[ahluj]
|
|
||||||
jchipqat-eaphixr-vgphh-bpgztixcv-271[hpiac]
|
|
||||||
zlkprjbo-doxab-avb-absbilmjbkq-107[wbymr]
|
|
||||||
eqpuwogt-itcfg-dcumgv-fgxgnqrogpv-362[gcfop]
|
|
||||||
rdadguja-qjccn-gtrtxkxcv-791[cadgj]
|
|
||||||
etaqigpke-oknkvcta-itcfg-hnqygt-hkpcpekpi-674[mcoya]
|
|
||||||
gspsvjyp-hci-wxsveki-386[myuqs]
|
|
||||||
jef-iushuj-vbemuh-mehaixef-920[ehufi]
|
|
||||||
encuukhkgf-fag-tgceswkukvkqp-752[kguce]
|
|
||||||
npmhcargjc-njyqrga-epyqq-kypicrgle-444[cgpqr]
|
|
||||||
xtwtelcj-rclop-mldvpe-dpcgtnpd-379[pcdlt]
|
|
||||||
nchhg-kpwkwtibm-mvoqvmmzqvo-252[mvhko]
|
|
||||||
uqtqbizg-ozilm-jiasmb-uizsmbqvo-122[ktxvs]
|
|
||||||
nwlddtqtpo-mldvpe-fdpc-epdetyr-509[dpetl]
|
|
||||||
wfintfhynaj-idj-qfgtwfytwd-229[efudw]
|
|
||||||
yhwooebeaz-nwilwcejc-ydkykhwpa-owhao-160[skuyi]
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Room(NamedTuple):
|
|
||||||
name: str
|
|
||||||
sector_id: int
|
|
||||||
checksum: str
|
|
||||||
|
|
||||||
def is_real(self) -> bool:
|
|
||||||
letters = collections.Counter(self.name.replace("-", ""))
|
|
||||||
checksum = sorted(letters.most_common(), key=lambda t: (-t[1], t[0]))[:5]
|
|
||||||
return "".join(c for c, _ in checksum) == self.checksum
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Room":
|
|
||||||
input, checksum = map(lambda s: s.removesuffix("]"), input.split("["))
|
|
||||||
*name, sector_id = input.split("-")
|
|
||||||
return cls("-".join(name), int(sector_id), checksum)
|
|
||||||
|
|
||||||
def decrypt(self) -> str:
|
|
||||||
def rotate(c: str) -> str:
|
|
||||||
rotated = ord(c) - ord("a") + self.sector_id
|
|
||||||
return chr(ord("a") + rotated % 26)
|
|
||||||
|
|
||||||
return "".join(rotate(c) if c != "-" else " " for c in self.name)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Room]:
|
|
||||||
return [Room.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
rooms = parse(input)
|
|
||||||
for room in rooms:
|
|
||||||
if not room.is_real():
|
|
||||||
continue
|
|
||||||
if room.decrypt() != "northpole object storage":
|
|
||||||
continue
|
|
||||||
return room.sector_id
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,991 +0,0 @@
|
||||||
aczupnetwp-dnlgpyrpc-sfye-dstaatyr-561[patyc]
|
|
||||||
jsehsyafy-vqw-ljsafafy-866[nymla]
|
|
||||||
tyepcyletzylw-ncjzrpytn-prr-opawzjxpye-743[cnrdl]
|
|
||||||
foadouwbu-qvcqczohs-obozmgwg-662[lamjh]
|
|
||||||
ckgvutofkj-pkrrehkgt-zkinturume-436[krtue]
|
|
||||||
pelbtravp-pnaql-ernpdhvfvgvba-481[szram]
|
|
||||||
yflexwxoalrp-ciltbo-tlohpelm-887[bmwep]
|
|
||||||
ipvohghykvbz-ihzrla-jbzavtly-zlycpjl-253[lzhvy]
|
|
||||||
cybyjqho-whqtu-rqiauj-fkhsxqiydw-322[syzwi]
|
|
||||||
tipfxvezt-sleep-tljkfdvi-jvimztv-425[tveif]
|
|
||||||
ktiaaqnqml-xtiabqk-oziaa-xczkpiaqvo-616[aiqko]
|
|
||||||
ckgvutofkj-xghhoz-gtgreyoy-306[nyhpz]
|
|
||||||
molgbzqfib-zovldbkfz-zxkav-lmboxqflkp-341[xlomg]
|
|
||||||
ikhcxvmbex-vtgwr-vhtmbgz-mxvaghehzr-111[hvgmx]
|
|
||||||
dpssptjwf-fhh-tfswjdft-805[fstdh]
|
|
||||||
oaddaeuhq-otaoaxmfq-qzsuzqqduzs-534[qadou]
|
|
||||||
dzczkrip-xiruv-sleep-drerxvdvek-685[erdvi]
|
|
||||||
jvsvymbs-yhiipa-vwlyhapvuz-149[zfyqn]
|
|
||||||
nsyjwsfyntsfq-gfxpjy-jslnsjjwnsl-853[sjnfy]
|
|
||||||
mbiyqoxsm-lsyrkjkbnyec-nio-wkbuodsxq-614[bkosy]
|
|
||||||
jchipqat-uadltg-hidgpvt-375[kcnop]
|
|
||||||
jqwpihizlwca-lgm-nqvivkqvo-980[ldeay]
|
|
||||||
xfbqpojafe-dipdpmbuf-tfswjdft-493[fdpbj]
|
|
||||||
kwvacumz-ozilm-kpwkwtibm-lmxtwgumvb-798[mwkbi]
|
|
||||||
eqttqukxg-ejqeqncvg-ocpcigogpv-648[sdtzl]
|
|
||||||
dsxxw-bwc-bcnjmwkclr-678[cwbxd]
|
|
||||||
jvuzbtly-nyhkl-ibuuf-thuhnltlua-175[ulhtb]
|
|
||||||
rdadguja-uadltg-bpgztixcv-401[adgtu]
|
|
||||||
atyzghrk-kmm-ktmotkkxotm-930[xzfpe]
|
|
||||||
uwtojhynqj-ojqqdgjfs-xjwanhjx-151[waqmk]
|
|
||||||
hwdtljsnh-uqfxynh-lwfxx-rfsfljrjsy-567[fhjls]
|
|
||||||
xst-wigvix-gspsvjyp-gerhc-erepcwmw-724[uplfw]
|
|
||||||
kzgwomvqk-jcvvg-zmamizkp-122[kmvzg]
|
|
||||||
sbejpbdujwf-dboez-dpbujoh-dvtupnfs-tfswjdf-623[uxrpz]
|
|
||||||
bxaxipgn-vgpst-rwdrdapit-prfjxhxixdc-609[xpdir]
|
|
||||||
avw-zljyla-zjhclunly-obua-ayhpupun-981[aluyh]
|
|
||||||
nuatmlmdpage-qss-fdmuzuzs-404[btopv]
|
|
||||||
oaddaeuhq-otaoaxmfq-dqoquhuzs-716[aoqdu]
|
|
||||||
myvybpev-cmkfoxqob-rexd-bomosfsxq-432[khwfc]
|
|
||||||
oxaflxzqfsb-zelzlixqb-jxohbqfkd-471[hxkwc]
|
|
||||||
fnjyxwrinm-snuuhknjw-anbnjalq-875[ztvnr]
|
|
||||||
qfmcusbwq-pibbm-fsqswjwbu-922[bqswf]
|
|
||||||
wihmogyl-aluxy-jfumncw-alumm-nluchcha-916[lmuac]
|
|
||||||
oxaflxzqfsb-avb-bkdfkbbofkd-757[trzjy]
|
|
||||||
ksodcbwnsr-qzoggwtwsr-gqojsbusf-vibh-fsgsofqv-818[gsdca]
|
|
||||||
rzvkjiduzy-xcjxjgvoz-gvwjmvojmt-161[zufvq]
|
|
||||||
nwlddtqtpo-mldvpe-dezclrp-639[zlnki]
|
|
||||||
vkppo-rqiauj-huqsgkyiyjyed-530[yijkp]
|
|
||||||
dfcxsqhwzs-qobrm-qcohwbu-fsoqeiwgwhwcb-688[wqbch]
|
|
||||||
vxupkizork-xghhoz-aykx-zkyzotm-462[kzoxh]
|
|
||||||
zotts-jfumncw-alumm-omyl-nymncha-396[bstha]
|
|
||||||
yaxsnlcrun-npp-cajrwrwp-355[nprac]
|
|
||||||
bkwzkqsxq-pvygob-nozkbdwoxd-822[bkodq]
|
|
||||||
frqvxphu-judgh-fdqgb-frdwlqj-hqjlqhhulqj-595[ezyxq]
|
|
||||||
hqtyeqsjylu-sqdto-sedjqydcudj-764[dqjsy]
|
|
||||||
fab-eqodqf-omzpk-fdmuzuzs-430[yxkbc]
|
|
||||||
gpewwmjmih-glsgspexi-xvemrmrk-204[cynzd]
|
|
||||||
kwtwznct-jcvvg-wxmzibqwva-694[cdaps]
|
|
||||||
guahyncw-wuhxs-zchuhwcha-396[xwnmj]
|
|
||||||
pybgmyargtc-zsllw-dglylagle-912[mcrsp]
|
|
||||||
kyelcrga-zyqicr-jyzmpyrmpw-782[yrcmp]
|
|
||||||
wsvsdkbi-qbkno-zvkcdsm-qbkcc-myxdksxwoxd-432[kdsbc]
|
|
||||||
ltpedcxots-rwdrdapit-advxhixrh-271[drtxa]
|
|
||||||
elrkdcdugrxv-sodvwlf-judvv-vklsslqj-465[vdlsj]
|
|
||||||
htwwtxnaj-hfsid-htfynsl-ywfnsnsl-281[ghfea]
|
|
||||||
nij-mywlyn-xsy-xymcah-682[kiasm]
|
|
||||||
zovldbkfz-yrkkv-abmilvjbkq-939[chetn]
|
|
||||||
esyfwlau-kusnwfywj-zmfl-ghwjslagfk-398[fwlsa]
|
|
||||||
lahxpnwrl-yujbcrl-pajbb-mnyuxhvnwc-147[tzcxk]
|
|
||||||
rwcnawjcrxwju-lqxlxujcn-lxwcjrwvnwc-381[hxsdl]
|
|
||||||
pbybeshy-pynffvsvrq-wryylorna-jbexfubc-143[ybfre]
|
|
||||||
lxaaxbren-kdwwh-bqryyrwp-407[sktqh]
|
|
||||||
pybgmyargtc-zyqicr-rpyglgle-106[vsdft]
|
|
||||||
jfifqxov-doxab-yxphbq-obxznrfpfqflk-939[nyvhm]
|
|
||||||
pualyuhapvuhs-jovjvshal-thuhnltlua-383[lrfob]
|
|
||||||
gvcskirmg-tpewxmg-kveww-pskmwxmgw-438[ujily]
|
|
||||||
lgh-kwujwl-tmffq-esfsywewfl-242[fwles]
|
|
||||||
jyddc-fewoix-hitevxqirx-412[ixdec]
|
|
||||||
uzfqdzmfuazmx-otaoaxmfq-ogefayqd-eqdhuoq-222[lbfru]
|
|
||||||
ryexqpqhteki-sxesebqju-tufbeocudj-348[tjzhb]
|
|
||||||
kfg-jvtivk-sleep-wzeretzex-477[ektvz]
|
|
||||||
kzgwomvqk-jcvvg-bmkpvwtwog-174[vgkwm]
|
|
||||||
odiih-kdwwh-uxprbcrlb-251[bdhir]
|
|
||||||
htqtwkzq-xhfajsljw-mzsy-yjhmstqtld-229[thjqs]
|
|
||||||
qjopwxha-xwogap-owhao-914[astye]
|
|
||||||
wrs-vhfuhw-edvnhw-hqjlqhhulqj-439[vufmz]
|
|
||||||
rdggdhxkt-xcitgcpixdcpa-rpcsn-rdpixcv-stktadebtci-609[cdtip]
|
|
||||||
eqttqukxg-fag-eqpvckpogpv-544[jmtpx]
|
|
||||||
kdijqrbu-sqdto-seqjydw-iuhlysui-946[bioht]
|
|
||||||
fydelmwp-awldetn-rcldd-cplnbftdtetzy-951[kpxim]
|
|
||||||
ubhatstkwhnl-unggr-nlxk-mxlmbgz-761[geyqm]
|
|
||||||
ocipgvke-gii-fgxgnqrogpv-726[giopv]
|
|
||||||
fab-eqodqf-otaoaxmfq-iadwetab-430[azmnb]
|
|
||||||
fab-eqodqf-otaoaxmfq-pqhqxabyqzf-456[qafob]
|
|
||||||
xekdwvwnzkqo-zua-naoawnyd-784[anwdk]
|
|
||||||
sbejpbdujwf-fhh-tbmft-285[mbfsn]
|
|
||||||
hwbba-eqpuwogt-itcfg-rncuvke-itcuu-ugtxkegu-648[ugtce]
|
|
||||||
hqcfqwydw-fbqijys-whqii-cqdqwucudj-452[ztesw]
|
|
||||||
dmpuamofuhq-nmewqf-emxqe-742[meqfu]
|
|
||||||
iqmbazulqp-pkq-iadwetab-976[kcxmz]
|
|
||||||
lahxpnwrl-ljwmh-lxjcrwp-bnaerlnb-927[lnrwa]
|
|
||||||
laffe-lruckx-vaxingyotm-306[aflxc]
|
|
||||||
forwcoqhwjs-qcffcgwjs-tzcksf-rsdzcmasbh-220[csfwh]
|
|
||||||
yflexwxoalrp-gbiivybxk-abpfdk-731[sjtrd]
|
|
||||||
foadouwbu-ibghopzs-pogysh-kcfygvcd-506[ogbcd]
|
|
||||||
rtqlgevkng-hnqygt-ugtxkegu-232[zdgob]
|
|
||||||
yrwxefpi-fyrrc-asvowlst-880[jmzfi]
|
|
||||||
tyepcyletzylw-nlyoj-nzletyr-fdpc-epdetyr-795[jfvnq]
|
|
||||||
rkpqxyib-yxphbq-lmboxqflkp-627[vzmla]
|
|
||||||
xjinphzm-bmvyz-hvbizodx-ytz-gjbdnodxn-967[jmuws]
|
|
||||||
ktfitzbgz-vtgwr-inkvatlbgz-813[tgzbi]
|
|
||||||
hqtyeqsjylu-sbqiiyvyut-fbqijys-whqii-vydqdsydw-634[yqisd]
|
|
||||||
hcd-gsqfsh-dzoghwq-ufogg-qcbhowbasbh-506[hgboq]
|
|
||||||
ryexqpqhteki-uww-qdqboiyi-140[qiewy]
|
|
||||||
bkzrrhehdc-qzaahs-cdoknxldms-625[czsmn]
|
|
||||||
sawlkjevaz-lhwopey-cnwoo-yqopkian-oanreya-966[znhlt]
|
|
||||||
xjgjmapg-hdgdovmt-bmvyz-zbb-yzkgjthzio-577[gzbjm]
|
|
||||||
myxcewob-qbkno-lexxi-wkbuodsxq-250[xboek]
|
|
||||||
nsyjwsfyntsfq-hfsid-htfynsl-wjfhvznxnynts-255[umtns]
|
|
||||||
kpvgtpcvkqpcn-ecpfa-ewuvqogt-ugtxkeg-596[ehsca]
|
|
||||||
vkrhzxgbv-cxeeruxtg-ftgtzxfxgm-579[ymast]
|
|
||||||
pbeebfvir-fpniratre-uhag-genvavat-663[smznt]
|
|
||||||
vehmsegxmzi-glsgspexi-hitpscqirx-802[jszht]
|
|
||||||
tyepcyletzylw-nlyoj-nzletyr-cpdplcns-223[lycen]
|
|
||||||
jxdkbqfz-oxaflxzqfsb-avb-lmboxqflkp-523[mzvny]
|
|
||||||
tcfkqcevkxg-tcddkv-uvqtcig-336[cdsln]
|
|
||||||
ide-htrgti-hrpktcvtg-wjci-ldgzhwde-947[tdghi]
|
|
||||||
ojk-nzxmzo-kgvnodx-bmvnn-ozxcijgjbt-213[nojxz]
|
|
||||||
avw-zljyla-msvdly-yljlpcpun-539[lyajp]
|
|
||||||
rdchjbtg-vgpst-rpcsn-rdpixcv-htgkxrth-661[rtcgh]
|
|
||||||
xlrypetn-dnlgpyrpc-sfye-dezclrp-353[pelry]
|
|
||||||
enqvbnpgvir-enoovg-erfrnepu-455[ftlpj]
|
|
||||||
xjinphzm-bmvyz-xviyt-xjvodib-pnzm-oznodib-291[mlybz]
|
|
||||||
rwcnawjcrxwju-kjbtnc-bqryyrwp-511[tkyns]
|
|
||||||
gokzyxsjon-pvygob-nofovyzwoxd-458[ndtfs]
|
|
||||||
bjfutsneji-hfsid-htfynsl-rfwpjynsl-489[fsjnh]
|
|
||||||
ydjuhdqjyedqb-rqiauj-qdqboiyi-452[qdijy]
|
|
||||||
enzcntvat-rtt-genvavat-351[lznyt]
|
|
||||||
rdadguja-qjccn-advxhixrh-791[yncim]
|
|
||||||
fmsledevhsyw-ikk-irkmriivmrk-646[nlxzm]
|
|
||||||
jfifqxov-doxab-mixpqfz-doxpp-obpbxoze-471[oxpbf]
|
|
||||||
jqwpihizlwca-zijjqb-aitma-408[gzpmw]
|
|
||||||
pyknyegle-afmamjyrc-bcqgel-808[gynip]
|
|
||||||
zbytomdsvo-mkxni-bocokbmr-406[obmkc]
|
|
||||||
wfummczcyx-luvvcn-fuvilunils-526[bavmt]
|
|
||||||
hwdtljsnh-gfxpjy-rfsfljrjsy-541[gpszy]
|
|
||||||
lsyrkjkbnyec-oqq-gybucryz-848[ybckq]
|
|
||||||
oaddaeuhq-vqxxknqmz-xasuefuoe-378[rzmqe]
|
|
||||||
vhglnfxk-zktwx-fbebmtkr-zktwx-wrx-vhgmtbgfxgm-813[xepwt]
|
|
||||||
yrwxefpi-gerhc-hitevxqirx-594[eirxh]
|
|
||||||
mvydjvxodqz-xviyt-xjvodib-rjmfncjk-265[cqirj]
|
|
||||||
kdijqrbu-tou-kiuh-juijydw-140[uijdk]
|
|
||||||
ugjjgkanw-usfvq-vwkayf-970[rntsw]
|
|
||||||
froruixo-fdqgb-ilqdqflqj-569[cylni]
|
|
||||||
gpsxdprixkt-hrpktcvtg-wjci-gtprfjxhxixdc-999[xptcg]
|
|
||||||
kwvacumz-ozilm-akidmvomz-pcvb-nqvivkqvo-460[emnrk]
|
|
||||||
pejji-zvkcdsm-qbkcc-domrxyvyqi-484[cdijk]
|
|
||||||
rdadguja-xcitgcpixdcpa-qphzti-bpgztixcv-791[cipad]
|
|
||||||
rkpqxyib-zxkav-zlxqfkd-qoxfkfkd-965[qiftn]
|
|
||||||
bkzrrhehdc-bnmrtldq-fqzcd-atmmx-qdrdzqbg-937[dqrbm]
|
|
||||||
eqttqukxg-rtqlgevkng-dwppa-fgxgnqrogpv-570[gxetc]
|
|
||||||
zbytomdsvo-mkxni-myxdksxwoxd-510[xdmok]
|
|
||||||
ymszqfuo-rxaiqd-dqmocgueufuaz-274[umtwy]
|
|
||||||
pelbtravp-ovbunmneqbhf-qlr-znantrzrag-663[xlyio]
|
|
||||||
rdadguja-ytaanqtpc-gtprfjxhxixdc-141[krcaf]
|
|
||||||
etaqigpke-hnqygt-eqpvckpogpv-362[pegqk]
|
|
||||||
rtqlgevkng-etaqigpke-ecpfa-eqcvkpi-ewuvqogt-ugtxkeg-206[gxszf]
|
|
||||||
fubrjhqlf-fkrfrodwh-sxufkdvlqj-777[pozts]
|
|
||||||
wfintfhynaj-wfggny-xjwanhjx-957[nfjwa]
|
|
||||||
xcitgcpixdcpa-bpvctixr-qphzti-gthtpgrw-479[zjlmc]
|
|
||||||
gntmfefwitzx-hfsid-fsfqdxnx-697[oanif]
|
|
||||||
xgjougizobk-jek-jkvgxzsktz-384[kgjzo]
|
|
||||||
nzydfxpc-rclop-mldvpe-cpdplcns-925[pcdln]
|
|
||||||
ltpedcxots-qphzti-gtrtxkxcv-739[txcpd]
|
|
||||||
gvaaz-fhh-mphjtujdt-233[hajtd]
|
|
||||||
jchipqat-rpcsn-gtprfjxhxixdc-297[cpxhi]
|
|
||||||
gsvvswmzi-gerhc-tyvglewmrk-308[zbdcy]
|
|
||||||
dmybmsuzs-omzpk-oamfuzs-pqhqxabyqzf-508[mzqsa]
|
|
||||||
iruzfrtkzmv-treup-tfrkzex-jkfirxv-295[rfktz]
|
|
||||||
pdjqhwlf-mhoobehdq-vwrudjh-127[hdjoq]
|
|
||||||
rgndvtcxr-hrpktcvtg-wjci-apqdgpidgn-375[jdrhb]
|
|
||||||
sbqiiyvyut-isqludwuh-xkdj-efuhqjyedi-114[qjzpn]
|
|
||||||
lahxpnwrl-npp-nwprwnnarwp-459[ontmq]
|
|
||||||
zntargvp-onfxrg-fnyrf-871[fnrga]
|
|
||||||
molgbzqfib-avb-absbilmjbkq-601[bailm]
|
|
||||||
kpvgtpcvkqpcn-tcddkv-wugt-vguvkpi-492[vkpcg]
|
|
||||||
jfifqxov-doxab-zxkav-zlkqxfkjbkq-341[kxfqa]
|
|
||||||
qfmcusbwq-dzoghwq-ufogg-fsqswjwbu-220[zbjty]
|
|
||||||
xjinphzm-bmvyz-mvwwdo-yzkgjthzio-785[zmhij]
|
|
||||||
ejpanjwpekjwh-ydkykhwpa-owhao-186[hqlfd]
|
|
||||||
nzydfxpc-rclop-prr-cplnbftdtetzy-483[pcrtd]
|
|
||||||
kwtwznct-rmttgjmiv-amzdqkma-590[mtakw]
|
|
||||||
muqfedyput-fbqijys-whqii-iqbui-790[gjxky]
|
|
||||||
egdytrixat-rgndvtcxr-rpcsn-jhtg-ithixcv-115[trcgi]
|
|
||||||
fab-eqodqf-rxaiqd-mzmxkeue-404[eqadf]
|
|
||||||
zotts-xsy-guleyncha-708[ymnbi]
|
|
||||||
mbiyqoxsm-pvygob-gybucryz-536[zbyxv]
|
|
||||||
dmybmsuzs-bxmefuo-sdmee-pqhqxabyqzf-716[mbeqs]
|
|
||||||
qspkfdujmf-ezf-fohjoffsjoh-519[fjohs]
|
|
||||||
nwlddtqtpo-prr-xlcvpetyr-249[owkmz]
|
|
||||||
amlqskcp-epybc-aylbw-amyrgle-bctcjmnkclr-808[clabm]
|
|
||||||
qspkfdujmf-qmbtujd-hsbtt-eftjho-727[tigys]
|
|
||||||
pualyuhapvuhs-thnulapj-msvdly-ylzlhyjo-877[lhuya]
|
|
||||||
diozmivodjivg-zbb-nzmqdxzn-629[zdibm]
|
|
||||||
yrwxefpi-qmpmxevc-kvehi-gerhc-gsexmrk-qerekiqirx-126[erixk]
|
|
||||||
qlm-pbzobq-zxkav-zlxqfkd-zrpqljbo-pbosfzb-575[phqza]
|
|
||||||
irgyyolokj-lruckx-aykx-zkyzotm-904[ubkvy]
|
|
||||||
cebwrpgvyr-pnaql-pbngvat-bcrengvbaf-793[bagnp]
|
|
||||||
wlsiayhcw-wifilzof-wuhxs-mylpcwym-630[wilyc]
|
|
||||||
nglmtuex-ktuubm-nlxk-mxlmbgz-215[egtsz]
|
|
||||||
sbejpbdujwf-dboez-nbobhfnfou-883[jpkmo]
|
|
||||||
qzoggwtwsr-qobrm-gsfjwqsg-480[xkwvm]
|
|
||||||
nwzekwypera-oywrajcan-dqjp-wymqeoepekj-472[zeydw]
|
|
||||||
sawlkjevaz-ywjzu-yqopkian-oanreya-836[ayejk]
|
|
||||||
pybgmyargtc-afmamjyrc-rpyglgle-470[zgmsu]
|
|
||||||
nzwzcqfw-qwzhpc-cplnbftdtetzy-977[zctwf]
|
|
||||||
lhkhszqx-fqzcd-okzrshb-fqzrr-cdudknoldms-651[defrs]
|
|
||||||
ugfkmewj-yjsvw-owshgfarwv-tskcwl-wfyafwwjafy-294[wfajs]
|
|
||||||
gpbepvxcv-gpqqxi-stktadebtci-609[npyad]
|
|
||||||
pxtihgbsxw-vahvhetmx-hixktmbhgl-397[pvcfe]
|
|
||||||
guahyncw-vohhs-fiacmncwm-656[chamn]
|
|
||||||
wfruflnsl-uqfxynh-lwfxx-wjfhvznxnynts-463[fnxlw]
|
|
||||||
lzfmdshb-cxd-dmfhmddqhmf-703[dmfhb]
|
|
||||||
gzefmnxq-eomhqzsqd-tgzf-oazfmuzyqzf-118[zfqme]
|
|
||||||
udskkaxawv-usfvq-ugslafy-hmjuzskafy-658[asufk]
|
|
||||||
ugjjgkanw-vqw-ksdwk-112[kwgja]
|
|
||||||
enqvbnpgvir-cynfgvp-tenff-fuvccvat-975[vfnce]
|
|
||||||
fydelmwp-ojp-nfdezxpc-dpcgtnp-353[gziom]
|
|
||||||
fmsledevhsyw-gpewwmjmih-glsgspexi-tyvglewmrk-178[egmsw]
|
|
||||||
shmml-enoovg-freivprf-585[efmor]
|
|
||||||
bnqqnrhud-atmmx-qdrdzqbg-651[qdbmn]
|
|
||||||
pxtihgbsxw-vahvhetmx-nlxk-mxlmbgz-943[xhmbg]
|
|
||||||
xfbqpojafe-dipdpmbuf-tbmft-441[wuizc]
|
|
||||||
zsxyfgqj-uqfxynh-lwfxx-ijxnls-749[futrq]
|
|
||||||
oaddaeuhq-nmewqf-dqmocgueufuaz-508[mwlcv]
|
|
||||||
buzahisl-zjhclunly-obua-zavyhnl-201[kzylj]
|
|
||||||
yhwooebeaz-iwcjapey-oywrajcan-dqjp-zaoecj-524[aejoc]
|
|
||||||
bwx-amkzmb-qvbmzvibqwvit-lgm-zmikycqaqbqwv-772[dubva]
|
|
||||||
oxmeeuruqp-ngzzk-fqotzaxask-638[zaeko]
|
|
||||||
xfbqpojafe-qmbtujd-hsbtt-efwfmpqnfou-363[fbqte]
|
|
||||||
iehepwnu-cnwza-xqjju-nayaerejc-472[eajnc]
|
|
||||||
ytu-xjhwjy-jll-ijxnls-385[moyjn]
|
|
||||||
nvrgfezqvu-treup-tfrkzex-wzeretzex-997[fpvnt]
|
|
||||||
kwvacumz-ozilm-moo-camz-bmabqvo-434[sanvt]
|
|
||||||
lxaaxbren-ouxfna-bjunb-277[abnxu]
|
|
||||||
gpsxdprixkt-uadltg-tcvxcttgxcv-453[txcgd]
|
|
||||||
owshgfarwv-jsttal-hmjuzskafy-658[asfhj]
|
|
||||||
pbafhzre-tenqr-qlr-ynobengbel-403[ebnrl]
|
|
||||||
yaxsnlcrun-mhn-jlzdrbrcrxw-121[wngsc]
|
|
||||||
bgmxkgtmbhgte-vtgwr-vhtmbgz-tgterlbl-995[gtbme]
|
|
||||||
nvrgfezqvu-avccpsvre-tljkfdvi-jvimztv-269[vcefi]
|
|
||||||
apwmeclga-pyzzgr-dglylagle-158[auvsi]
|
|
||||||
qczcftiz-pogysh-rsgwub-350[kcdvs]
|
|
||||||
qlm-pbzobq-gbiivybxk-abpfdk-211[bikpq]
|
|
||||||
crwwv-rkpqxyib-yrkkv-cfkxkzfkd-419[krcfv]
|
|
||||||
sbnqbhjoh-cbtlfu-tupsbhf-285[bhfst]
|
|
||||||
qlm-pbzobq-avb-bkdfkbbofkd-159[golnc]
|
|
||||||
nchhg-jiasmb-lmaqov-902[dpmcw]
|
|
||||||
tagzsrsjvgmk-jsttal-umklgewj-kwjnauw-944[fsqml]
|
|
||||||
rkpqxyib-yxphbq-jxkxdbjbkq-601[npbtf]
|
|
||||||
ujqgywfau-tmffq-hmjuzskafy-736[zmnlk]
|
|
||||||
ujqgywfau-hdsklau-yjskk-umklgewj-kwjnauw-190[kujwa]
|
|
||||||
uqtqbizg-ozilm-jcvvg-lmxizbumvb-850[mhanw]
|
|
||||||
yhtwhnpun-ihzrla-klclsvwtlua-591[lkqzn]
|
|
||||||
sbqiiyvyut-sqdto-seqjydw-sedjqydcudj-738[warvn]
|
|
||||||
bwx-amkzmb-uqtqbizg-ozilm-moo-kwvbiqvumvb-746[wystg]
|
|
||||||
tipfxvezt-vxx-cfxzjkztj-555[xtzfj]
|
|
||||||
cjpibabsepvt-cvooz-sftfbsdi-571[myqsb]
|
|
||||||
ymszqfuo-fab-eqodqf-pkq-xmnadmfadk-274[tkbds]
|
|
||||||
wlqqp-treup-tfrkzex-jkfirxv-581[refkp]
|
|
||||||
lnkfaypeha-fahhuxawj-wjwhuoeo-550[ahwef]
|
|
||||||
lsyrkjkbnyec-oqq-ckvoc-874[azsyv]
|
|
||||||
gvcskirmg-fewoix-wlmttmrk-360[mgikr]
|
|
||||||
irdgrxzex-tipfxvezt-treup-tfrkzex-cfxzjkztj-607[txzer]
|
|
||||||
avw-zljyla-zjhclunly-obua-yljlpcpun-617[lajuy]
|
|
||||||
nwzekwypera-lhwopey-cnwoo-hkceopeyo-134[zulqp]
|
|
||||||
vkppo-sqdto-seqjydw-jhqydydw-114[dqyjo]
|
|
||||||
zixppfcfba-zxkav-zlkqxfkjbkq-679[txhzn]
|
|
||||||
sbnqbhjoh-dboez-sftfbsdi-623[bsdfh]
|
|
||||||
qjopwxha-bhksan-zalhkuiajp-316[ahjkp]
|
|
||||||
yhtwhnpun-thnulapj-ibuuf-klzpnu-773[unhpl]
|
|
||||||
uwtojhynqj-kqtbjw-wjfhvznxnynts-827[ntyqj]
|
|
||||||
jef-iushuj-rkddo-ijehqwu-504[biekf]
|
|
||||||
gspsvjyp-tpewxmg-kveww-gywxsqiv-wivzmgi-672[sryce]
|
|
||||||
rgllk-eomhqzsqd-tgzf-etubbuzs-118[zbegl]
|
|
||||||
shmml-pubpbyngr-ynobengbel-403[bnegl]
|
|
||||||
gsrwyqiv-kvehi-fewoix-wivzmgiw-256[rimyz]
|
|
||||||
iuxxuyobk-yigbktmkx-natz-xkykgxin-852[kxiyb]
|
|
||||||
excdklvo-oqq-vklybkdybi-744[utifh]
|
|
||||||
ojk-nzxmzo-agjrzm-xpnojhzm-nzmqdxz-915[zmjno]
|
|
||||||
qspkfdujmf-sbccju-eftjho-103[byjhc]
|
|
||||||
fodvvlilhg-mhoobehdq-whfkqrorjb-699[taskb]
|
|
||||||
aflwjfslagfsd-usfvq-ogjckzgh-814[emsnh]
|
|
||||||
sebehvkb-uww-tulubefcudj-712[ubewc]
|
|
||||||
egdytrixat-gpbepvxcv-hrpktcvtg-wjci-hidgpvt-531[vzdcg]
|
|
||||||
nsyjwsfyntsfq-zsxyfgqj-gzssd-wjxjfwhm-749[sgmhv]
|
|
||||||
ktfitzbgz-yehpxk-kxvxbobgz-761[ryzea]
|
|
||||||
tcrjjzwzvu-irsszk-rthlzjzkzfe-503[ocepg]
|
|
||||||
dfcxsqhwzs-pibbm-sbuwbssfwbu-558[tocys]
|
|
||||||
nwzekwypera-bhksan-odellejc-758[eakln]
|
|
||||||
qfmcusbwq-qobrm-qcohwbu-fsoqeiwgwhwcb-402[cpzsy]
|
|
||||||
cvabijtm-zijjqb-uizsmbqvo-434[btzma]
|
|
||||||
irdgrxzex-srjbvk-glityrjzex-867[rxegi]
|
|
||||||
rdadguja-tvv-gtrtxkxcv-609[tvadg]
|
|
||||||
wdjcvuvmyjpn-zbb-mznzvmxc-213[ndmaz]
|
|
||||||
vagreangvbany-sybjre-nanylfvf-507[bryme]
|
|
||||||
vjpwncrl-mhn-bqryyrwp-979[rnpwy]
|
|
||||||
jqwpihizlwca-ntwemz-abwziom-642[iyzsa]
|
|
||||||
jchipqat-rwdrdapit-detgpixdch-921[dipta]
|
|
||||||
vqr-ugetgv-tcddkv-eqpvckpogpv-440[vgpcd]
|
|
||||||
ajyqqgdgcb-aylbw-amyrgle-qyjcq-756[qyagb]
|
|
||||||
fbebmtkr-zktwx-utldxm-nlxk-mxlmbgz-553[onbvf]
|
|
||||||
hwdtljsnh-kqtbjw-ijajqturjsy-827[jthqs]
|
|
||||||
sedikcuh-whqtu-sxesebqju-udwyduuhydw-556[rvudf]
|
|
||||||
ipvohghykvbz-tpspahyf-nyhkl-yhiipa-huhsfzpz-123[hpyiz]
|
|
||||||
fubrjhqlf-mhoobehdq-oderudwrub-153[bdhor]
|
|
||||||
mbggf-zjhclunly-obua-dvyrzovw-695[bglou]
|
|
||||||
houngfgxjuay-igtje-aykx-zkyzotm-176[qcita]
|
|
||||||
lugjuacha-mwupyhayl-bohn-xyjulngyhn-318[gnftc]
|
|
||||||
rdggdhxkt-rpcsn-rdpixcv-itrwcdadvn-505[uancd]
|
|
||||||
yaxsnlcrun-ouxfna-jwjuhbrb-199[xnmwj]
|
|
||||||
yrwxefpi-tpewxmg-kveww-wlmttmrk-334[rfqkl]
|
|
||||||
ktwbhtvmbox-unggr-kxtvjnblbmbhg-215[bgthk]
|
|
||||||
amlqskcp-epybc-bwc-pcyaosgqgrgml-600[cgpab]
|
|
||||||
ujqgywfau-usfvq-ugslafy-jwuwanafy-606[uafwy]
|
|
||||||
nwzekwypera-lhwopey-cnwoo-lqnydwoejc-134[xithv]
|
|
||||||
nwzekwypera-acc-naoawnyd-160[itvch]
|
|
||||||
luxciuwncpy-ohmnuvfy-yaa-wihnuchgyhn-526[hnuyc]
|
|
||||||
ygcrqpkbgf-ejqeqncvg-tgegkxkpi-674[gekqc]
|
|
||||||
mtzslklcozfd-qwzhpc-nfdezxpc-dpcgtnp-223[ucwob]
|
|
||||||
tinnm-tzcksf-zcuwghwqg-948[nmktj]
|
|
||||||
rdchjbtg-vgpst-hrpktcvtg-wjci-itrwcdadvn-453[ngtzh]
|
|
||||||
yrwxefpi-nippcfier-hizipstqirx-932[ipref]
|
|
||||||
cvabijtm-xtiabqk-oziaa-kcabwumz-amzdqkm-590[mpqzo]
|
|
||||||
dpmpsgvm-dipdpmbuf-efqmpznfou-259[pmdfu]
|
|
||||||
ynukcajey-nwxxep-zarahkliajp-238[ytaej]
|
|
||||||
zbytomdsvo-mkxni-mykdsxq-nocsqx-770[mosxd]
|
|
||||||
tagzsrsjvgmk-xdgowj-jwuwanafy-814[efhpk]
|
|
||||||
xqvwdeoh-fdqgb-rshudwlrqv-127[jpkat]
|
|
||||||
kpvgtpcvkqpcn-fag-qrgtcvkqpu-596[pcgkq]
|
|
||||||
zlkprjbo-doxab-gbiivybxk-obpbxoze-393[boxik]
|
|
||||||
zbytomdsvo-mrymyvkdo-domrxyvyqi-744[ymodv]
|
|
||||||
jvuzbtly-nyhkl-qlssfilhu-klwhyatlua-695[lhuya]
|
|
||||||
nzydfxpc-rclop-nsznzwlep-xlylrpxpye-145[plnxy]
|
|
||||||
atyzghrk-xghhoz-rghuxgzuxe-748[ghxzr]
|
|
||||||
vhglnfxk-zktwx-ietlmbv-zktll-ftkdxmbgz-787[wbspa]
|
|
||||||
njmjubsz-hsbef-dipdpmbuf-vtfs-uftujoh-623[fubjs]
|
|
||||||
pyknyegle-aylbw-jmegqrgaq-756[egyal]
|
|
||||||
bgmxkgtmbhgte-lvtoxgzxk-angm-vhgmtbgfxgm-137[gmtxb]
|
|
||||||
ydjuhdqjyedqb-vbemuh-jusxdebewo-946[debju]
|
|
||||||
jxdkbqfz-zxkav-zlxqfkd-mrozexpfkd-263[kxzdf]
|
|
||||||
nbhofujd-dipdpmbuf-pqfsbujpot-597[pbdfu]
|
|
||||||
wrs-vhfuhw-fdqgb-vklsslqj-647[sfhlq]
|
|
||||||
vkrhzxgbv-vtgwr-ehzblmbvl-449[knuzb]
|
|
||||||
gsrwyqiv-kvehi-fyrrc-pefsvexsvc-750[versc]
|
|
||||||
hqcfqwydw-vbemuh-ixyffydw-270[fwydh]
|
|
||||||
vetllbybxw-vkrhzxgbv-lvtoxgzxk-angm-ybgtgvbgz-527[jxrwq]
|
|
||||||
bkzrrhehdc-eknvdq-cdrhfm-365[dhrce]
|
|
||||||
cybyjqho-whqtu-rkddo-qsgkyiyjyed-530[ydqhj]
|
|
||||||
ckgvutofkj-hatte-ynovvotm-332[tovka]
|
|
||||||
sawlkjevaz-zua-iwngapejc-758[jzwql]
|
|
||||||
mvhkvbdib-kgvnodx-bmvnn-gjbdnodxn-551[bmkyo]
|
|
||||||
enzcntvat-fpniratre-uhag-grpuabybtl-689[sqkoh]
|
|
||||||
bqvvu-acc-oanreyao-108[acovb]
|
|
||||||
tyepcyletzylw-nlyoj-nzletyr-nfdezxpc-dpcgtnp-275[yelnp]
|
|
||||||
fbebmtkr-zktwx-lvtoxgzxk-angm-kxlxtkva-839[kxtab]
|
|
||||||
ojk-nzxmzo-wvnfzo-vivgtndn-707[mlndw]
|
|
||||||
tpspahyf-nyhkl-qlssfilhu-klwsvftlua-487[iewds]
|
|
||||||
shoewudys-isqludwuh-xkdj-husuylydw-868[tlyhz]
|
|
||||||
qzoggwtwsr-qobrm-oqeiwgwhwcb-116[wgoqb]
|
|
||||||
zlkprjbo-doxab-yxphbq-pxibp-237[ocanz]
|
|
||||||
iruzfrtkzmv-avccpsvre-vexzevvizex-893[nyktl]
|
|
||||||
hqtyeqsjylu-hqrryj-tulubefcudj-894[ujqye]
|
|
||||||
zlkprjbo-doxab-fkqbokxqflkxi-mixpqfz-doxpp-xznrfpfqflk-523[fxkpo]
|
|
||||||
dpmpsgvm-sbccju-dvtupnfs-tfswjdf-129[neysa]
|
|
||||||
qcbgiasf-ufors-dzoghwq-ufogg-zopcfohcfm-246[yhmkz]
|
|
||||||
esyfwlau-ugjjgkanw-usfvq-kzahhafy-242[wnzhb]
|
|
||||||
mbiyqoxsm-lkcuod-nozkbdwoxd-432[odbkm]
|
|
||||||
usfvq-ugslafy-vwhdgqewfl-632[fglqs]
|
|
||||||
gokzyxsjon-zvkcdsm-qbkcc-oxqsxoobsxq-484[xrkfl]
|
|
||||||
hdgdovmt-bmvyz-wvnfzo-gjbdnodxn-395[bwicg]
|
|
||||||
sehheiylu-fhezusjybu-rkddo-udwyduuhydw-530[udhye]
|
|
||||||
glrcplyrgmlyj-aylbw-amyrgle-nspafyqgle-210[dmuny]
|
|
||||||
aflwjfslagfsd-jsttal-xafsfuafy-138[faslj]
|
|
||||||
yuxufmdk-sdmpq-iqmbazulqp-otaoaxmfq-pqbxakyqzf-586[qamfp]
|
|
||||||
jef-iushuj-sxesebqju-ixyffydw-270[iztnj]
|
|
||||||
zvyvgnel-tenqr-enzcntvat-ohaal-ratvarrevat-793[atven]
|
|
||||||
yuxufmdk-sdmpq-vqxxknqmz-ogefayqd-eqdhuoq-612[qdmux]
|
|
||||||
yhtwhnpun-kfl-ylhjxbpzpapvu-357[phlnu]
|
|
||||||
egdytrixat-qjccn-bpcpvtbtci-557[mtpgc]
|
|
||||||
wsvsdkbi-qbkno-mkxni-mykdsxq-ecob-docdsxq-120[dksbo]
|
|
||||||
xtwtelcj-rclop-ojp-dstaatyr-873[omnal]
|
|
||||||
wifilzof-jfumncw-alumm-xypyfijgyhn-318[evfso]
|
|
||||||
mvydjvxodqz-agjrzm-hvivbzhzio-655[vzdhi]
|
|
||||||
jsehsyafy-usfvq-ugslafy-jwuwanafy-840[afsyu]
|
|
||||||
myxcewob-qbkno-nio-bocokbmr-900[obckm]
|
|
||||||
ipvohghykvbz-wshzapj-nyhzz-vwlyhapvuz-539[hzvpy]
|
|
||||||
tbxmlkfwba-pzxsbkdbo-erkq-zrpqljbo-pbosfzb-185[bkopz]
|
|
||||||
rdadguja-eaphixr-vgphh-itrwcdadvn-869[nfpxs]
|
|
||||||
lugjuacha-jfumncw-alumm-zchuhwcha-734[uachm]
|
|
||||||
jsehsyafy-jsttal-jwsuimakalagf-762[mnvlh]
|
|
||||||
zixppfcfba-yrkkv-absbilmjbkq-393[ihgyz]
|
|
||||||
bxaxipgn-vgpst-rdchjbtg-vgpst-rpcsn-rdpixcv-hpath-817[pgtch]
|
|
||||||
rtqlgevkng-ejqeqncvg-hkpcpekpi-154[xpgty]
|
|
||||||
laffe-hgyqkz-xkikobotm-488[kfoab]
|
|
||||||
jfifqxov-doxab-zxkav-zlxqfkd-qoxfkfkd-419[ubaro]
|
|
||||||
myxcewob-qbkno-cmkfoxqob-rexd-zebmrkcsxq-952[boxce]
|
|
||||||
apuut-wvnfzo-rjmfncjk-447[fjnua]
|
|
||||||
lejkrscv-tfcfiwlc-avccpsvre-fgvirkzfej-113[cfver]
|
|
||||||
nglmtuex-cxeeruxtg-kxvxbobgz-215[xegbt]
|
|
||||||
sgmtkzoi-kmm-xkgiwaoyozout-748[qrkst]
|
|
||||||
amppmqgtc-djmucp-rcaflmjmew-912[bcvna]
|
|
||||||
xst-wigvix-fyrrc-wepiw-438[ygref]
|
|
||||||
dzczkrip-xiruv-jtrmvexvi-ylek-fgvirkzfej-295[irvek]
|
|
||||||
diozmivodjivg-xviyt-xjvodib-zibdizzmdib-265[zmrey]
|
|
||||||
rgndvtcxr-ytaanqtpc-stepgibtci-661[tcagi]
|
|
||||||
xgsvgmotm-hgyqkz-jkyomt-358[ajyhb]
|
|
||||||
zloolpfsb-yxphbq-ixyloxqlov-393[loxbp]
|
|
||||||
zilqwikbqdm-jiasmb-uizsmbqvo-668[ibmqs]
|
|
||||||
rtqlgevkng-rncuvke-itcuu-ucngu-206[ucgne]
|
|
||||||
dmybmsuzs-yuxufmdk-sdmpq-eomhqzsqd-tgzf-iadwetab-482[nkqyl]
|
|
||||||
vetllbybxw-ktuubm-hixktmbhgl-345[ikqop]
|
|
||||||
bwx-amkzmb-jcvvg-ikycqaqbqwv-954[symcn]
|
|
||||||
ubhatstkwhnl-ynssr-lvtoxgzxk-angm-kxlxtkva-163[ktxal]
|
|
||||||
zlilocri-yxphbq-pefmmfkd-471[filmp]
|
|
||||||
yflexwxoalrp-zlkprjbo-doxab-zxkav-zlxqfkd-qoxfkfkd-419[xkflo]
|
|
||||||
oxaflxzqfsb-zelzlixqb-xznrfpfqflk-393[flxzq]
|
|
||||||
ixccb-vfdyhqjhu-kxqw-ghyhorsphqw-101[pzgst]
|
|
||||||
pybgmyargtc-qaytclecp-fslr-sqcp-rcqrgle-860[crglp]
|
|
||||||
zbytomdsvo-mkxni-kmaescsdsyx-562[smdko]
|
|
||||||
hwbba-dwppa-ocpcigogpv-570[pabcg]
|
|
||||||
eza-dpncpe-nlyoj-nzletyr-wlmzclezcj-171[elzcn]
|
|
||||||
tbxmlkfwba-mixpqfz-doxpp-zlkqxfkjbkq-159[kxbfp]
|
|
||||||
vetllbybxw-yehpxk-ehzblmbvl-657[blehv]
|
|
||||||
zuv-ykixkz-jek-lotgtiotm-852[ktioz]
|
|
||||||
fnjyxwrinm-mhn-mnyjacvnwc-277[zgpnw]
|
|
||||||
odiih-ljwmh-lxjcrwp-mnenuxyvnwc-615[nwchi]
|
|
||||||
wfummczcyx-wuhxs-qilembij-838[mciuw]
|
|
||||||
sno-rdbqds-bgnbnkzsd-bnmszhmldms-859[sbdnm]
|
|
||||||
nvrgfezqvu-gcrjkzt-xirjj-ivjvrity-555[ylfxv]
|
|
||||||
encuukhkgf-uecxgpigt-jwpv-ujkrrkpi-622[kugpc]
|
|
||||||
lnkfaypeha-xqjju-qoan-paopejc-446[ajpen]
|
|
||||||
kmjezxodgz-ytz-gvwjmvojmt-109[jmzgo]
|
|
||||||
ygcrqpkbgf-hnqygt-octmgvkpi-128[gckpq]
|
|
||||||
jxdkbqfz-mixpqfz-doxpp-tlohpelm-107[pxdfl]
|
|
||||||
xjgjmapg-xviyt-xjvodib-adivixdib-759[ixdjv]
|
|
||||||
laffe-jek-sgtgmksktz-644[vuenb]
|
|
||||||
pbafhzre-tenqr-enoovg-ratvarrevat-975[ymshj]
|
|
||||||
lqwhuqdwlrqdo-vfdyhqjhu-kxqw-uhvhdufk-959[kzlvy]
|
|
||||||
rflsjynh-jll-zxjw-yjxynsl-697[jlyns]
|
|
||||||
wrs-vhfuhw-sodvwlf-judvv-ghvljq-361[vhwdf]
|
|
||||||
ynssr-unggr-tvjnblbmbhg-163[bgnrs]
|
|
||||||
jyfvnlupj-jvsvymbs-yhiipa-zopwwpun-903[nrdma]
|
|
||||||
kzeed-hfsid-uzwhmfxnsl-515[uoyvx]
|
|
||||||
ide-htrgti-uadltg-gtprfjxhxixdc-375[tdgix]
|
|
||||||
sorozgxe-mxgjk-hatte-vaxingyotm-358[fwxei]
|
|
||||||
ydjuhdqjyedqb-fbqijys-whqii-jusxdebewo-582[nuzsj]
|
|
||||||
yknnkoera-xwogap-paydjkhkcu-498[kanop]
|
|
||||||
nzydfxpc-rclop-upwwjmply-opdtry-691[pycdl]
|
|
||||||
dlhwvupglk-jhukf-jvhapun-zlycpjlz-409[lhjpu]
|
|
||||||
kwvacumz-ozilm-moo-bmkpvwtwog-694[mowkv]
|
|
||||||
kmjezxodgz-wpiit-mzxzdqdib-863[anvbu]
|
|
||||||
xlrypetn-nsznzwlep-xlylrpxpye-587[znfwt]
|
|
||||||
pybgmyargtc-qaytclecp-fslr-umpiqfmn-600[nzvej]
|
|
||||||
etyyx-qzaahs-lzqjdshmf-781[ahqsy]
|
|
||||||
ovbunmneqbhf-wryylorna-znantrzrag-221[pnazx]
|
|
||||||
gzefmnxq-bxmefuo-sdmee-ymzmsqyqzf-352[lgvpu]
|
|
||||||
ixeumktoi-jek-jkbkruvsktz-488[mzeun]
|
|
||||||
dzczkrip-xiruv-avccpsvre-glityrjzex-321[eflmp]
|
|
||||||
wfruflnsl-hfsid-fhvznxnynts-307[fnshl]
|
|
||||||
vkppo-rkddo-iqbui-218[dikop]
|
|
||||||
muqfedyput-zubboruqd-mehaixef-452[inbaj]
|
|
||||||
ftzgxmbv-cxeeruxtg-nlxk-mxlmbgz-683[xgmbe]
|
|
||||||
htsxzrjw-lwfij-uqfxynh-lwfxx-hzxytrjw-xjwanhj-827[xjwhf]
|
|
||||||
qekrixmg-wgezirkiv-lyrx-tyvglewmrk-282[regik]
|
|
||||||
ktiaaqnqml-jiasmb-apqxxqvo-226[asvyf]
|
|
||||||
lejkrscv-irdgrxzex-srjbvk-kvtyefcfxp-165[rekvx]
|
|
||||||
hvbizodx-nxvqzibzm-cpio-hvmfzodib-291[izbov]
|
|
||||||
ltpedcxots-tvv-rjhidbtg-htgkxrt-297[tdghr]
|
|
||||||
dlhwvupglk-mbggf-jovjvshal-zlycpjlz-565[lgjvh]
|
|
||||||
xfbqpojafe-tdbwfohfs-ivou-sfbdrvjtjujpo-779[fjobd]
|
|
||||||
kmjezxodgz-xviyt-gvwjmvojmt-577[flhas]
|
|
||||||
jshzzpmplk-jhukf-jvhapun-vwlyhapvuz-669[hpjuv]
|
|
||||||
tfejldvi-xiruv-gcrjkzt-xirjj-drerxvdvek-295[dpsef]
|
|
||||||
zotts-yaa-lymyulwb-968[skymd]
|
|
||||||
rmn-qcapcr-zyqicr-umpiqfmn-704[cmqri]
|
|
||||||
xfbqpojafe-cbtlfu-qvsdibtjoh-727[bfjoq]
|
|
||||||
ykhknbqh-nwxxep-oanreyao-732[naehk]
|
|
||||||
raphhxuxts-hrpktcvtg-wjci-hidgpvt-921[hmzng]
|
|
||||||
yrwxefpi-qmpmxevc-kvehi-gerhc-gsexmrk-hizipstqirx-932[mdsza]
|
|
||||||
xjgjmapg-xviyt-vivgtndn-603[utnks]
|
|
||||||
cxy-bnlanc-mhn-vjwjpnvnwc-745[mtsvn]
|
|
||||||
ujoon-gpbepvxcv-eaphixr-vgphh-uxcpcrxcv-687[pcvxh]
|
|
||||||
ykjoqian-cnwza-iwcjapey-lhwopey-cnwoo-opknwca-264[owacn]
|
|
||||||
lnkfaypeha-oywrajcan-dqjp-zalwnpiajp-108[apjnl]
|
|
||||||
ktwbhtvmbox-yehpxk-mktbgbgz-293[cndif]
|
|
||||||
hqcfqwydw-cqwdujys-rqiauj-qsgkyiyjyed-738[qydjw]
|
|
||||||
amlqskcp-epybc-zyqicr-kylyeckclr-600[sdrzj]
|
|
||||||
bnmrtldq-fqzcd-rbzudmfdq-gtms-zbpthrhshnm-443[dmbhq]
|
|
||||||
nwlddtqtpo-nlyoj-nzletyr-epnsyzwzrj-379[tyrzv]
|
|
||||||
cvabijtm-kpwkwtibm-lmxtwgumvb-980[mbtwi]
|
|
||||||
amlqskcp-epybc-afmamjyrc-jyzmpyrmpw-574[mpyac]
|
|
||||||
aflwjfslagfsd-vqw-dstgjslgjq-424[sfgjl]
|
|
||||||
willimcpy-zfiqyl-xymcah-110[ilycm]
|
|
||||||
kpvgtpcvkqpcn-lgnnadgcp-ujkrrkpi-128[knmqz]
|
|
||||||
wyvqljapsl-buzahisl-ibuuf-lunpullypun-409[wyhza]
|
|
||||||
amlqskcp-epybc-pyzzgr-pcacgtgle-210[cpgae]
|
|
||||||
xtwtelcj-rclop-mldvpe-dstaatyr-821[nkabu]
|
|
||||||
pdjqhwlf-gbh-sxufkdvlqj-751[cdmbz]
|
|
||||||
wkqxodsm-zvkcdsm-qbkcc-ecob-docdsxq-432[cdkoq]
|
|
||||||
xjmmjndqz-wpiit-gjbdnodxn-811[djnim]
|
|
||||||
zlkprjbo-doxab-zelzlixqb-absbilmjbkq-939[blzai]
|
|
||||||
htqtwkzq-xhfajsljw-mzsy-ywfnsnsl-619[lfsnu]
|
|
||||||
zhdsrqlchg-mhoobehdq-xvhu-whvwlqj-361[hqdlo]
|
|
||||||
tcfkqcevkxg-tcorcikpi-ejqeqncvg-uvqtcig-544[lsyzm]
|
|
||||||
kwtwznct-kivlg-zmamizkp-824[ixjen]
|
|
||||||
bkzrrhehdc-qzaahs-rghoohmf-287[hraoz]
|
|
||||||
lxuxaodu-mhn-cajrwrwp-303[aruwx]
|
|
||||||
tcorcikpi-dcumgv-octmgvkpi-700[vygzd]
|
|
||||||
crwwv-zlkprjbo-doxab-yxphbq-bkdfkbbofkd-809[bkdof]
|
|
||||||
xgvnndadzy-xcjxjgvoz-ncdkkdib-447[dnxcg]
|
|
||||||
elrkdcdugrxv-fkrfrodwh-xvhu-whvwlqj-179[eubfs]
|
|
||||||
odkasqzuo-rxaiqd-eqdhuoqe-430[nlyts]
|
|
||||||
vhglnfxk-zktwx-xzz-xgzbgxxkbgz-917[xzgkb]
|
|
||||||
jyfvnlupj-wyvqljapsl-jovjvshal-zlycpjlz-357[jlvpy]
|
|
||||||
gpbepvxcv-eaphixr-vgphh-gtrtxkxcv-687[pvxgh]
|
|
||||||
jrncbavmrq-zntargvp-qlr-qrirybczrag-741[dnzpg]
|
|
||||||
hqfxxnknji-hfsid-knsfshnsl-307[wtfhe]
|
|
||||||
aietsrmdih-nippcfier-stivexmsrw-750[iersm]
|
|
||||||
glrcplyrgmlyj-pyzzgr-pcqcypaf-912[nkoyv]
|
|
||||||
ugfkmewj-yjsvw-hdsklau-yjskk-sfsdqkak-216[ksjad]
|
|
||||||
mhi-lxvkxm-vtgwr-kxtvjnblbmbhg-917[bmvxg]
|
|
||||||
tipfxvezt-irsszk-kvtyefcfxp-451[fteik]
|
|
||||||
jxdkbqfz-mixpqfz-doxpp-qoxfkfkd-939[fxdkp]
|
|
||||||
dsxxw-pyzzgr-qrmpyec-288[prxyz]
|
|
||||||
ejpanjwpekjwh-fahhuxawj-ajcejaanejc-394[jaehw]
|
|
||||||
pinovwgz-xgvnndadzy-xviyt-vxlpdndodji-109[dnvix]
|
|
||||||
szfyrqriuflj-upv-rercpjzj-243[jprqg]
|
|
||||||
dmbttjgjfe-gmpxfs-efqbsunfou-701[fbegj]
|
|
||||||
sgmtkzoi-inuiurgzk-ykxboiky-436[qlcfs]
|
|
||||||
slqryzjc-djmucp-ylyjwqgq-158[jqycl]
|
|
||||||
aflwjfslagfsd-vqw-hmjuzskafy-398[fasjl]
|
|
||||||
slqryzjc-djmucp-pcacgtgle-886[cgjlp]
|
|
||||||
qjopwxha-ywjzu-ajcejaanejc-420[zoehr]
|
|
||||||
amjmpdsj-njyqrga-epyqq-kylyeckclr-756[yksln]
|
|
||||||
zlkprjbo-doxab-zxkav-zlxqfkd-abpfdk-445[kabdx]
|
|
||||||
lhkhszqx-fqzcd-bgnbnkzsd-nodqzshnmr-989[nzdhq]
|
|
||||||
dlhwvupglk-ibuuf-klwhyatlua-591[dzktb]
|
|
||||||
dpotvnfs-hsbef-cbtlfu-ufdiopmphz-623[homsd]
|
|
||||||
ajvyjprwp-npp-mnbrpw-875[pjnrw]
|
|
||||||
lxwbdvna-pajmn-snuuhknjw-mnyuxhvnwc-251[nuwah]
|
|
||||||
vetllbybxw-lvtoxgzxk-angm-xgzbgxxkbgz-865[mknli]
|
|
||||||
aflwjfslagfsd-jsehsyafy-usfvq-vwkayf-268[fsayj]
|
|
||||||
xjgjmapg-agjrzm-gvwjmvojmt-291[jgmav]
|
|
||||||
plolwdub-judgh-iorzhu-dqdobvlv-465[dloub]
|
|
||||||
htqtwkzq-wfggny-fsfqdxnx-645[wsznf]
|
|
||||||
fkqbokxqflkxi-zxkav-zlxqfkd-jxohbqfkd-341[kxfqb]
|
|
||||||
oxjmxdfkd-avb-tlohpelm-653[dlmox]
|
|
||||||
xtwtelcj-rclop-nsznzwlep-epnsyzwzrj-873[zelnp]
|
|
||||||
rtqlgevkng-gii-ceswkukvkqp-466[kgeiq]
|
|
||||||
molgbzqfib-yrkkv-ixyloxqlov-237[lobik]
|
|
||||||
zbytomdsvo-mrymyvkdo-nocsqx-848[pahef]
|
|
||||||
szfyrqriuflj-treup-tfrkzex-ivtvzmzex-867[xejut]
|
|
||||||
upq-tfdsfu-kfmmzcfbo-mphjtujdt-909[fmtud]
|
|
||||||
ykhknbqh-lhwopey-cnwoo-bejwjyejc-342[hwxgn]
|
|
||||||
qfkkj-nsznzwlep-nzyeltyxpye-327[vkmwy]
|
|
||||||
excdklvo-zvkcdsm-qbkcc-psxkxmsxq-900[cvoiz]
|
|
||||||
dszphfojd-dboez-dpbujoh-xpsltipq-623[zbxem]
|
|
||||||
udpsdjlqj-iorzhu-ghsorbphqw-517[hdjop]
|
|
||||||
xcitgcpixdcpa-ide-htrgti-gpqqxi-gthtpgrw-609[gitpc]
|
|
||||||
cybyjqho-whqtu-uww-tuiywd-348[styfx]
|
|
||||||
yuxufmdk-sdmpq-nmewqf-oazfmuzyqzf-924[hfsly]
|
|
||||||
tfejldvi-xiruv-avccpsvre-crsfirkfip-997[rxygp]
|
|
||||||
wsvsdkbi-qbkno-oqq-wkxkqowoxd-822[koqwb]
|
|
||||||
qcbgiasf-ufors-tzcksf-sbuwbssfwbu-610[ivjsc]
|
|
||||||
vkrhzxgbv-wrx-lmhktzx-839[xhkrv]
|
|
||||||
xmrrq-bwddqtwsf-vwnwdghewfl-242[fpmoq]
|
|
||||||
kmjezxodgz-nxvqzibzm-cpio-gjbdnodxn-577[isocd]
|
|
||||||
iutyaskx-mxgjk-kmm-jkyomt-436[kmjtx]
|
|
||||||
ide-htrgti-snt-rjhidbtg-htgkxrt-531[tghir]
|
|
||||||
vkppo-uww-bqrehqjeho-764[xmntl]
|
|
||||||
bdavqofuxq-pkq-ymzmsqyqzf-196[qfmyz]
|
|
||||||
diozmivodjivg-hvbizodx-zbb-ozxcijgjbt-915[zueag]
|
|
||||||
cybyjqho-whqtu-hqrryj-bqrehqjeho-374[hqjry]
|
|
||||||
vcibutulxiom-vohhs-lywycpcha-630[owyks]
|
|
||||||
chnylhuncihuf-wuhxs-fiacmncwm-786[chnuf]
|
|
||||||
xekdwvwnzkqo-ywjzu-ykwpejc-wymqeoepekj-264[dmbln]
|
|
||||||
etyyx-cxd-vnqjrgno-391[hntfq]
|
|
||||||
pwcvonofrcig-dfcxsqhwzs-qobrm-qighcasf-gsfjwqs-194[scfqg]
|
|
||||||
xgvnndadzy-ezggtwzvi-nojmvbz-837[vnsth]
|
|
||||||
dszphfojd-qmbtujd-hsbtt-usbjojoh-467[rskch]
|
|
||||||
npmhcargjc-aylbw-amyrgle-yaosgqgrgml-886[galmr]
|
|
||||||
qczcftiz-gqojsbusf-vibh-twbobqwbu-350[bnsiu]
|
|
||||||
kwvacumz-ozilm-kzgwomvqk-xtiabqk-oziaa-twoqabqka-980[akoqz]
|
|
||||||
dsxxw-zyqicr-cleglccpgle-418[clegx]
|
|
||||||
jrncbavmrq-cynfgvp-tenff-ynobengbel-611[nbefc]
|
|
||||||
hqtyeqsjylu-fbqijys-whqii-tuiywd-322[mitks]
|
|
||||||
rnqnyfwd-lwfij-wfggny-xmnuunsl-697[tseia]
|
|
||||||
fhezusjybu-rqiauj-udwyduuhydw-868[ngyzs]
|
|
||||||
pkl-oaynap-ywjzu-ykwpejc-opknwca-628[pakwy]
|
|
||||||
nuatmlmdpage-vqxxknqmz-geqd-fqefuzs-508[romxa]
|
|
||||||
awzwhofm-ufors-qobrm-qcohwbu-hsqvbczcum-948[obchm]
|
|
||||||
dfcxsqhwzs-rms-fsgsofqv-766[sfqcd]
|
|
||||||
wlqqp-tyftfcrkv-rercpjzj-711[rcfjp]
|
|
||||||
clotzlnetgp-awldetn-rcldd-nzyeltyxpye-743[letdn]
|
|
||||||
lgh-kwujwl-hdsklau-yjskk-vwhsjlewfl-788[lkwhj]
|
|
||||||
uqtqbizg-ozilm-kivlg-kwibqvo-uizsmbqvo-512[iqbov]
|
|
||||||
vetllbybxw-lvtoxgzxk-angm-kxlxtkva-683[xlktv]
|
|
||||||
qyujihctyx-mwupyhayl-bohn-uwkocmcncih-760[chyui]
|
|
||||||
crwwv-zxkav-obzbfsfkd-237[bfkvw]
|
|
||||||
qczcftiz-pogysh-igsf-hsghwbu-610[tnjwm]
|
|
||||||
udpsdjlqj-gbh-hqjlqhhulqj-725[hjqld]
|
|
||||||
yuxufmdk-sdmpq-nmewqf-emxqe-326[meqdf]
|
|
||||||
molgbzqfib-ciltbo-ildfpqfzp-653[bfilo]
|
|
||||||
uwtojhynqj-gfxpjy-ywfnsnsl-151[jnyfs]
|
|
||||||
qvbmzvibqwvit-jiasmb-camz-bmabqvo-330[bmvai]
|
|
||||||
xmtjbzidx-xviyt-xjvodib-xpnojhzm-nzmqdxz-603[torgb]
|
|
||||||
ykjoqian-cnwza-fahhuxawj-qoan-paopejc-628[ajnoc]
|
|
||||||
gvcskirmg-veffmx-irkmriivmrk-906[imrkv]
|
|
||||||
njmjubsz-hsbef-dboez-dpbujoh-bdrvjtjujpo-649[astyb]
|
|
||||||
ovbunmneqbhf-pnaql-pbngvat-jbexfubc-845[yzqwm]
|
|
||||||
joufsobujpobm-kfmmzcfbo-usbjojoh-571[mkpnw]
|
|
||||||
lzfmdshb-cxd-lzmzfdldms-287[dlmzf]
|
|
||||||
froruixo-mhoobehdq-pdunhwlqj-439[ohdqr]
|
|
||||||
xcitgcpixdcpa-rpcsn-rdpixcv-bpcpvtbtci-193[cpitx]
|
|
||||||
dfcxsqhwzs-ksodcbwnsr-xszzmpsob-rsgwub-168[sbwzc]
|
|
||||||
iuruxlar-lruckx-sgtgmksktz-436[krugl]
|
|
||||||
nbhofujd-dboez-fohjoffsjoh-467[ofhjb]
|
|
||||||
pejji-tovvilokx-nozvyiwoxd-276[bzkve]
|
|
||||||
bxaxipgn-vgpst-rpcsn-rdpixcv-rjhidbtg-htgkxrt-583[upjyv]
|
|
||||||
bkzrrhehdc-bzmcx-bnzshmf-lzqjdshmf-443[hzbmc]
|
|
||||||
dpssptjwf-gmpxfs-mphjtujdt-571[pjstd]
|
|
||||||
pdjqhwlf-sodvwlf-judvv-orjlvwlfv-829[tuszv]
|
|
||||||
mfklstdw-tmffq-wfyafwwjafy-918[wmvan]
|
|
||||||
joufsobujpobm-ezf-gjobodjoh-779[xwadm]
|
|
||||||
hafgnoyr-gbc-frperg-rtt-grpuabybtl-481[jcgnd]
|
|
||||||
joufsobujpobm-fhh-tijqqjoh-233[johbf]
|
|
||||||
zuv-ykixkz-vrgyzoi-mxgyy-yzuxgmk-150[yzgkx]
|
|
||||||
ibghopzs-qvcqczohs-qighcasf-gsfjwqs-948[ubrmn]
|
|
||||||
qfmcusbwq-pwcvonofrcig-foppwh-fsgsofqv-584[focpq]
|
|
||||||
aczupnetwp-awldetn-rcldd-qtylyntyr-119[tdlny]
|
|
||||||
dpssptjwf-ezf-sfdfjwjoh-909[znfwy]
|
|
||||||
qxdwpopgsdjh-ytaanqtpc-pcpanhxh-297[pahcd]
|
|
||||||
ucynmlgxcb-aylbw-rpyglgle-626[lgybc]
|
|
||||||
oqnidbshkd-okzrshb-fqzrr-rdquhbdr-573[rdbhq]
|
|
||||||
frqvxphu-judgh-fdqgb-vhuylfhv-647[hfuvd]
|
|
||||||
vhehkyne-cxeeruxtg-hixktmbhgl-319[ehxgk]
|
|
||||||
gsrwyqiv-kvehi-gerhc-gsexmrk-vigimzmrk-412[girek]
|
|
||||||
ajmrxjlcren-yujbcrl-pajbb-bnaerlnb-719[lvzpq]
|
|
||||||
zixppfcfba-bdd-bkdfkbbofkd-393[hnmcz]
|
|
||||||
aflwjfslagfsd-hdsklau-yjskk-ugflsafewfl-918[flsak]
|
|
||||||
xtwtelcj-rclop-upwwjmply-nzyeltyxpye-847[lpyet]
|
|
||||||
oaddaeuhq-qss-dqmocgueufuaz-924[qzwti]
|
|
||||||
tvsnigxmpi-wgezirkiv-lyrx-hitpscqirx-568[irxgp]
|
|
||||||
ksodcbwnsr-qczcftiz-gqojsbusf-vibh-igsf-hsghwbu-272[sbcfg]
|
|
||||||
sgmtkzoi-jek-gtgreyoy-410[tqkns]
|
|
||||||
rzvkjiduzy-kgvnodx-bmvnn-omvdidib-109[fpsxk]
|
|
||||||
diozmivodjivg-rzvkjiduzy-zbb-adivixdib-447[nayqm]
|
|
||||||
froruixo-vfdyhqjhu-kxqw-rshudwlrqv-517[rhqud]
|
|
||||||
dmpuamofuhq-dmnnuf-ymzmsqyqzf-222[mwnak]
|
|
||||||
mybbycsfo-zvkcdsm-qbkcc-wkbuodsxq-380[bcksd]
|
|
||||||
tcrjjzwzvu-wcfnvi-vexzevvizex-633[vzeci]
|
|
||||||
qzoggwtwsr-gqojsbusf-vibh-hsqvbczcum-870[sbgqc]
|
|
||||||
enzcntvat-cynfgvp-tenff-phfgbzre-freivpr-845[xnfot]
|
|
||||||
gsvvswmzi-gerhc-gsexmrk-stivexmsrw-984[segmr]
|
|
||||||
fhezusjybu-vbemuh-iqbui-244[iektm]
|
|
||||||
oqnidbshkd-idkkxadzm-qdzbpthrhshnm-469[gekyh]
|
|
||||||
pybgmyargtc-cee-nspafyqgle-574[egyac]
|
|
||||||
jyddc-gerhc-gsexmrk-vigimzmrk-672[gmrcd]
|
|
||||||
tipfxvezt-gcrjkzt-xirjj-rercpjzj-399[ldquc]
|
|
||||||
bdavqofuxq-bxmefuo-sdmee-dqeqmdot-768[hwmck]
|
|
||||||
fbebmtkr-zktwx-vtgwr-hixktmbhgl-475[tbkgh]
|
|
||||||
irgyyolokj-igtje-iugzotm-rumoyzoiy-202[mpijw]
|
|
||||||
fbebmtkr-zktwx-xzz-kxlxtkva-865[yicwo]
|
|
||||||
tyepcyletzylw-dnlgpyrpc-sfye-nfdezxpc-dpcgtnp-145[badwi]
|
|
||||||
vrurcjah-pajmn-ljwmh-anbnjalq-849[ajnhl]
|
|
||||||
rtqlgevkng-ecpfa-fgukip-700[gefkp]
|
|
||||||
pdjqhwlf-froruixo-udeelw-wudlqlqj-907[kymab]
|
|
||||||
tinnm-xszzmpsob-qcbhowbasbh-688[nhcdm]
|
|
||||||
nij-mywlyn-wuhxs-lywycpcha-318[ywchl]
|
|
||||||
fnjyxwrinm-ouxfna-ldbcxvna-bnaerln-979[naxbf]
|
|
||||||
ajvyjprwp-bljenwpna-qdwc-anjlzdrbrcrxw-823[jrwan]
|
|
||||||
diozmivodjivg-wpiit-mzxzdqdib-551[kmhon]
|
|
||||||
nij-mywlyn-dyffsvyuh-xyjfisgyhn-656[yfnhi]
|
|
||||||
fhezusjybu-zubboruqd-vydqdsydw-504[dubyq]
|
|
||||||
ubhatstkwhnl-lvtoxgzxk-angm-kxvxbobgz-579[xbgkt]
|
|
||||||
xcitgcpixdcpa-rwdrdapit-htgkxrth-557[zastp]
|
|
||||||
wfintfhynaj-jll-hzxytrjw-xjwanhj-281[jhnwa]
|
|
||||||
irgyyolokj-vrgyzoi-mxgyy-rumoyzoiy-800[sptbo]
|
|
||||||
jvyyvzpcl-yhkpvhjapcl-ibuuf-aljouvsvnf-227[vjlpu]
|
|
||||||
iruzfrtkzmv-treup-kirzezex-841[rzeik]
|
|
||||||
cxy-bnlanc-ljwmh-ujkxajcxah-979[waqkz]
|
|
||||||
qzoggwtwsr-foppwh-difqvogwbu-948[wgofp]
|
|
||||||
qyujihctyx-dyffsvyuh-zchuhwcha-552[hycuf]
|
|
||||||
yknnkoera-lhwopey-cnwoo-pnwejejc-992[enowc]
|
|
||||||
zovldbkfz-zxkav-zlxqfkd-xkxivpfp-289[vtcos]
|
|
||||||
mrxivrexmsrep-glsgspexi-erepcwmw-750[btrnl]
|
|
||||||
udskkaxawv-kusnwfywj-zmfl-dgyaklauk-866[xeozd]
|
|
||||||
esyfwlau-tmffq-vwnwdghewfl-632[czoml]
|
|
||||||
hjgbwuladw-kusnwfywj-zmfl-esfsywewfl-294[xwfie]
|
|
||||||
hwbba-rncuvke-itcuu-ocpcigogpv-232[cubgi]
|
|
||||||
vhkkhlbox-vtgwr-xgzbgxxkbgz-631[typnq]
|
|
||||||
nvrgfezqvu-szfyrqriuflj-vxx-jkfirxv-139[krijl]
|
|
||||||
iuruxlar-zuv-ykixkz-lruckx-xkykgxin-826[kxuir]
|
|
||||||
yhwooebeaz-ywjzu-yqopkian-oanreya-966[ynwkb]
|
|
||||||
iuxxuyobk-pkrrehkgt-xkgiwaoyozout-176[sjwtp]
|
|
||||||
glrcplyrgmlyj-djmucp-qrmpyec-236[clmpr]
|
|
||||||
pejji-tovvilokx-bocokbmr-588[obijk]
|
|
||||||
hplazytkpo-upwwjmply-dpcgtnpd-119[pdltw]
|
|
||||||
nij-mywlyn-xsy-jolwbumcha-136[yjlmn]
|
|
||||||
pynffvsvrq-ohaal-fgbentr-923[fanrv]
|
|
||||||
lgh-kwujwl-kusnwfywj-zmfl-kwjnauwk-736[wkjlu]
|
|
||||||
dszphfojd-sbccju-mbcpsbupsz-727[sbcpd]
|
|
||||||
ixeumktoi-lruckx-zkinturume-800[ktsyl]
|
|
||||||
fmsledevhsyw-tvsnigxmpi-veffmx-viwievgl-412[veifm]
|
|
||||||
mrxivrexmsrep-fyrrc-qevoixmrk-880[wtmdx]
|
|
||||||
qmpmxevc-kvehi-wgezirkiv-lyrx-wlmttmrk-620[zyxjd]
|
|
||||||
zixppfcfba-oxyyfq-qbzeklildv-289[fbilp]
|
|
||||||
nwlddtqtpo-dnlgpyrpc-sfye-wlmzclezcj-431[jefsy]
|
|
||||||
tinnm-foppwh-oqeiwgwhwcb-688[fzyjx]
|
|
||||||
plolwdub-judgh-fdqgb-ghyhorsphqw-413[hystk]
|
|
||||||
bwx-amkzmb-zijjqb-bmkpvwtwog-460[bmwjk]
|
|
||||||
qcbgiasf-ufors-pibbm-ghcfous-896[bfscg]
|
|
||||||
ktwbhtvmbox-vetllbybxw-cxeeruxtg-tgterlbl-215[tmybs]
|
|
||||||
lqwhuqdwlrqdo-mhoobehdq-vwrudjh-387[dhqow]
|
|
||||||
lgh-kwujwl-tskcwl-vwhdgqewfl-684[afnbs]
|
|
||||||
yuxufmdk-sdmpq-rxaiqd-efadmsq-976[mczye]
|
|
||||||
ftzgxmbv-unggr-kxlxtkva-917[ezfmx]
|
|
||||||
rmn-qcapcr-aylbw-amyrgle-ylyjwqgq-158[prcqj]
|
|
||||||
fhezusjybu-rqiauj-husuylydw-582[uyhjs]
|
|
||||||
apuut-xviyt-xjvodib-yzkvmohzio-525[yomvc]
|
|
||||||
mybbycsfo-dyz-combod-zvkcdsm-qbkcc-oxqsxoobsxq-848[obcsd]
|
|
||||||
yhwooebeaz-lhwopey-cnwoo-zalhkuiajp-706[oaehw]
|
|
||||||
bqxnfdmhb-bzmcx-trdq-sdrshmf-469[zdyht]
|
|
||||||
dmpuamofuhq-vqxxknqmz-pqbmdfyqzf-924[qmfdp]
|
|
||||||
kmjezxodgz-ytz-mzvxlpdndodji-889[gefcn]
|
|
||||||
apuut-xviyt-xjvodib-mznzvmxc-369[vximt]
|
|
||||||
fodvvlilhg-surmhfwloh-hjj-hqjlqhhulqj-647[hljqf]
|
|
||||||
tipfxvezt-srjbvk-tljkfdvi-jvimztv-269[vtijf]
|
|
||||||
ikhcxvmbex-xzz-labiibgz-423[qnzsg]
|
|
||||||
qzchnzbshud-azrjds-lzmzfdldms-885[xubgy]
|
|
||||||
eadalsjq-yjsvw-vqw-esjcwlafy-398[ajswe]
|
|
||||||
oxmeeuruqp-bxmefuo-sdmee-etubbuzs-898[stupo]
|
|
||||||
frqvxphu-judgh-xqvwdeoh-fdqgb-frdwlqj-zrunvkrs-257[dqrfh]
|
|
||||||
ltpedcxots-gpbepvxcv-qphzti-igpxcxcv-349[jzdyi]
|
|
||||||
vhkkhlbox-vtgwr-phkdlahi-969[tmszy]
|
|
||||||
cvabijtm-jcvvg-lmdmtwxumvb-226[nvfca]
|
|
||||||
sedikcuh-whqtu-sqdto-qsgkyiyjyed-790[dqsye]
|
|
||||||
gzefmnxq-bdavqofuxq-rxaiqd-ymzmsqyqzf-690[zklij]
|
|
||||||
zntargvp-cynfgvp-tenff-qrcyblzrag-351[sqzyh]
|
|
||||||
xfbqpojafe-dboez-xpsltipq-857[ehgum]
|
|
||||||
uqtqbizg-ozilm-jcvvg-lmaqov-980[xzwsi]
|
|
||||||
xjgjmapg-ezggtwzvi-xpnojhzm-nzmqdxz-161[zgjmx]
|
|
||||||
muqfedyput-vbemuh-fkhsxqiydw-920[udefh]
|
|
||||||
kzeed-gfxpjy-ywfnsnsl-489[xeoyn]
|
|
||||||
pynffvsvrq-onfxrg-ynobengbel-741[nfbeg]
|
|
||||||
froruixo-iorzhu-rshudwlrqv-647[rouhi]
|
|
||||||
amjmpdsj-qaytclecp-fslr-qyjcq-938[cjqal]
|
|
||||||
otzkxtgzoutgr-jek-iayzuskx-ykxboik-826[kotxz]
|
|
||||||
tpspahyf-nyhkl-jhukf-zavyhnl-279[hyafk]
|
|
||||||
pualyuhapvuhs-ihzrla-ylhjxbpzpapvu-929[lbncu]
|
|
||||||
odiih-ajkkrc-mnbrpw-355[ikrab]
|
|
||||||
votubcmf-gmpxfs-bdrvjtjujpo-363[jbfmo]
|
|
||||||
zgmfyxypbmsq-rmn-qcapcr-bwc-pcacgtgle-704[ztspm]
|
|
||||||
uqtqbizg-ozilm-nchhg-jiasmb-ivitgaqa-382[snpaf]
|
|
||||||
willimcpy-jfumncw-alumm-lyuwkocmcncih-734[cmliu]
|
|
||||||
ibghopzs-qvcqczohs-hsqvbczcum-506[chqsz]
|
|
||||||
ugjjgkanw-tmffq-vwkayf-216[lfrby]
|
|
||||||
pynffvsvrq-pnaql-erprvivat-507[vpraf]
|
|
||||||
aczupnetwp-nlyoj-nzletyr-pyrtyppctyr-197[pytnr]
|
|
||||||
vkppo-sqdto-seqjydw-bewyijysi-686[sydei]
|
|
||||||
dpotvnfs-hsbef-ezf-qvsdibtjoh-337[fsbde]
|
|
||||||
wlqqp-avccpsvre-ivtvzmzex-425[vcepq]
|
|
||||||
jfifqxov-doxab-gbiivybxk-jxohbqfkd-549[skgzo]
|
|
||||||
rgndvtcxr-jchipqat-rpcsn-igpxcxcv-713[cprxg]
|
|
||||||
ykhknbqh-xqjju-wymqeoepekj-576[ejkqh]
|
|
||||||
pejji-mrymyvkdo-domrxyvyqi-536[ymdij]
|
|
||||||
wihmogyl-aluxy-xsy-womnigyl-mylpcwy-786[ylmwg]
|
|
||||||
jlidywncfy-zfiqyl-mbcjjcha-162[cjyfi]
|
|
||||||
pynffvsvrq-sybjre-grpuabybtl-455[byavk]
|
|
||||||
uqtqbizg-ozilm-uiovmbqk-akidmvomz-pcvb-bziqvqvo-694[xywnk]
|
|
||||||
lxaaxbren-ouxfna-ydalqjbrwp-225[mibtg]
|
|
||||||
joufsobujpobm-kfmmzcfbo-dvtupnfs-tfswjdf-675[ijokq]
|
|
||||||
crwwv-gbiivybxk-pqloxdb-913[rtmzn]
|
|
||||||
pkl-oaynap-nwxxep-bejwjyejc-576[jfmel]
|
|
||||||
wfummczcyx-gcfcnuls-aluxy-wuhxs-wihnuchgyhn-786[giqsn]
|
|
||||||
htsxzrjw-lwfij-ojqqdgjfs-ijajqturjsy-229[tjxbs]
|
|
||||||
qczcftiz-foppwh-rsgwub-246[exnyt]
|
|
||||||
lnkfaypeha-xwogap-naoawnyd-342[zynls]
|
|
||||||
thnulapj-zjhclunly-obua-thuhnltlua-201[luhan]
|
|
||||||
vkppo-fbqijys-whqii-bqrehqjeho-504[lkosn]
|
|
||||||
eqpuwogt-itcfg-ecpfa-qrgtcvkqpu-622[cgpqt]
|
|
||||||
odkasqzuo-oazegyqd-sdmpq-otaoaxmfq-efadmsq-222[aoqdm]
|
|
||||||
ide-htrgti-bxaxipgn-vgpst-qjccn-pcpanhxh-453[pcghi]
|
|
||||||
luxciuwncpy-jfumncw-alumm-xyjulngyhn-552[unclm]
|
|
||||||
plolwdub-judgh-hjj-zrunvkrs-777[yfulq]
|
|
||||||
pejji-lexxi-oxqsxoobsxq-458[xoeij]
|
|
||||||
uzfqdzmfuazmx-pkq-fdmuzuzs-170[npsqv]
|
|
||||||
bknsykmdsfo-zvkcdsm-qbkcc-cdybkqo-614[fastx]
|
|
||||||
qfkkj-upwwjmply-qtylyntyr-873[yjklp]
|
|
||||||
hqcfqwydw-zubboruqd-ijehqwu-218[djvhz]
|
|
||||||
kmjezxodgz-pinovwgz-zbb-ncdkkdib-473[vimty]
|
|
||||||
bknsykmdsfo-myvybpev-mkxni-mykdsxq-bocokbmr-562[sdwfr]
|
|
||||||
eqttqukxg-gii-hkpcpekpi-960[yljdr]
|
|
||||||
drxevkzt-wcfnvi-cfxzjkztj-607[twoxz]
|
|
||||||
vkppo-rkddo-ijehqwu-504[dkope]
|
|
||||||
rgllk-rxaiqd-dqmocgueufuaz-456[mxkzr]
|
|
||||||
ktiaaqnqml-moo-xczkpiaqvo-122[aoqik]
|
|
||||||
amjmpdsj-njyqrga-epyqq-pcqcypaf-600[pqajy]
|
|
||||||
rwcnawjcrxwju-npp-ujkxajcxah-199[jacwx]
|
|
||||||
fmsledevhsyw-gspsvjyp-gerhc-gsexmrk-ywiv-xiwxmrk-412[segmr]
|
|
||||||
ajmrxjlcren-kdwwh-anbnjalq-745[myzet]
|
|
||||||
aoubshwq-tinnm-suu-fsoqeiwgwhwcb-480[wsubh]
|
|
||||||
rdggdhxkt-rpcsn-hpath-531[tsamh]
|
|
||||||
pbafhzre-tenqr-pnaql-pbngvat-nanylfvf-715[upmid]
|
|
||||||
zbytomdsvo-cmkfoxqob-rexd-gybucryz-562[obycd]
|
|
||||||
bkwzkqsxq-mkxni-ecob-docdsxq-978[ksmtq]
|
|
||||||
oknkvcta-itcfg-ecpfa-ncdqtcvqta-414[lcwjp]
|
|
||||||
fydelmwp-clmmte-cpnptgtyr-405[jlgak]
|
|
||||||
tcorcikpi-ecpfa-gpikpggtkpi-804[picgk]
|
|
||||||
xtwtelcj-rclop-upwwjmply-hzcvdsza-327[clpwj]
|
|
||||||
tcfkqcevkxg-ecpfa-eqcvkpi-ncdqtcvqta-752[cqekt]
|
|
||||||
etaqigpke-tcddkv-uvqtcig-440[tcdeg]
|
|
||||||
raphhxuxts-qxdwpopgsdjh-rpcsn-rdpixcv-sthxvc-843[tvexn]
|
|
||||||
atyzghrk-xghhoz-ktmotkkxotm-748[kthog]
|
|
||||||
fmsledevhsyw-nippcfier-asvowlst-412[zksal]
|
|
||||||
oaxadrgx-eomhqzsqd-tgzf-eqdhuoqe-846[zfylm]
|
|
||||||
qcbgiasf-ufors-dzoghwq-ufogg-qcbhowbasbh-194[bgofh]
|
|
||||||
qvbmzvibqwvit-bwx-amkzmb-jiasmb-xczkpiaqvo-122[bimva]
|
|
||||||
qfkkj-prr-hzcvdsza-639[dqmts]
|
|
||||||
jvyyvzpcl-ibuuf-bzly-alzapun-981[mnakf]
|
|
||||||
dsxxw-cee-pcacgtgle-626[odsgr]
|
|
||||||
buzahisl-zjhclunly-obua-zlycpjlz-617[rsglh]
|
|
||||||
gpewwmjmih-tpewxmg-kveww-jmrergmrk-594[mwegr]
|
|
||||||
aietsrmdih-hci-stivexmsrw-516[hsvof]
|
|
||||||
ujoon-ytaanqtpc-stepgibtci-219[tacin]
|
|
||||||
kpvgtpcvkqpcn-fag-ceswkukvkqp-830[cijob]
|
|
||||||
etaqigpke-uecxgpigt-jwpv-ocpcigogpv-154[gpcei]
|
|
||||||
eqnqthwn-tcddkv-rwtejcukpi-674[tcdek]
|
|
||||||
mhi-lxvkxm-ktuubm-nlxk-mxlmbgz-241[mxklb]
|
|
||||||
avw-zljyla-wshzapj-nyhzz-ylzlhyjo-149[plqkx]
|
|
||||||
xekdwvwnzkqo-nwxxep-odellejc-862[xyzwn]
|
|
||||||
pkl-oaynap-bhksan-qoan-paopejc-498[ojduv]
|
|
||||||
xjinphzm-bmvyz-xjgjmapg-ezggtwzvi-zibdizzmdib-499[zigmb]
|
|
||||||
bdavqofuxq-rxaiqd-bgdotmeuzs-508[clbmv]
|
|
||||||
xzwrmkbqtm-jcvvg-ewzsapwx-902[wmvxz]
|
|
||||||
dmybmsuzs-rxaiqd-xmnadmfadk-846[dmasx]
|
|
||||||
surmhfwloh-exqqb-vwrudjh-127[hqruw]
|
|
||||||
gntmfefwitzx-ojqqdgjfs-xytwflj-827[xgtuv]
|
|
||||||
tbxmlkfwba-zxkav-zlxqfkd-ildfpqfzp-965[jncig]
|
|
||||||
sbnqbhjoh-tdbwfohfs-ivou-qvsdibtjoh-597[rftxz]
|
|
||||||
hqcfqwydw-fbqijys-whqii-iqbui-322[iqwbf]
|
|
||||||
forwcoqhwjs-xszzmpsob-gvwddwbu-324[ftyzu]
|
|
||||||
zlilocri-oxjmxdfkd-ciltbo-pbosfzbp-991[gjars]
|
|
||||||
kwzzwaqdm-rmttgjmiv-uizsmbqvo-434[mziqt]
|
|
||||||
willimcpy-gcfcnuls-aluxy-mwupyhayl-bohn-yhachyylcha-162[kcimx]
|
|
||||||
uqtqbizg-ozilm-kivlg-uizsmbqvo-954[pifvj]
|
|
||||||
ugdgjxmd-tskcwl-wfyafwwjafy-762[wfadg]
|
|
||||||
ajyqqgdgcb-bwc-qyjcq-262[qcbgj]
|
|
||||||
yknnkoera-oywrajcan-dqjp-wjwhuoeo-602[oajnw]
|
|
||||||
bqxnfdmhb-qzaahs-rzkdr-963[abdhq]
|
|
||||||
dwbcjkun-mhn-jwjuhbrb-693[niusd]
|
|
||||||
wlqqp-wcfnvi-crsfirkfip-373[nrtqs]
|
|
||||||
guahyncw-wbiwifuny-xymcah-240[wyach]
|
|
||||||
qfkkj-prr-opgpwzaxpye-613[pkrae]
|
|
||||||
cqwdujys-tou-tufbeocudj-322[ucdjo]
|
|
||||||
wfruflnsl-wfggny-ijuqtdrjsy-931[wjznm]
|
|
||||||
bnqqnrhud-okzrshb-fqzrr-cdrhfm-105[rhqbd]
|
|
||||||
yhtwhnpun-tpspahyf-nyhkl-jovjvshal-zlycpjlz-487[hlpyj]
|
|
||||||
iutyaskx-mxgjk-hatte-lotgtiotm-176[shzku]
|
|
||||||
gntmfefwitzx-kqtbjw-xfqjx-645[nmfsa]
|
|
||||||
jvsvymbs-jhukf-jbzavtly-zlycpjl-695[frnkz]
|
|
||||||
dlhwvupglk-zjhclunly-obua-jvuahputlua-825[ulahj]
|
|
||||||
wyvqljapsl-jhukf-jvhapun-ylzlhyjo-487[jlhya]
|
|
||||||
ghkmaihex-hucxvm-lmhktzx-267[hmxka]
|
|
||||||
irgyyolokj-vrgyzoi-mxgyy-xkikobotm-670[ryfvl]
|
|
||||||
kwzzwaqdm-zijjqb-amzdqkma-564[qzdtv]
|
|
||||||
rflsjynh-idj-xytwflj-541[jflyd]
|
|
||||||
emixwvqhml-ntwemz-zmkmqdqvo-200[zmbdq]
|
|
||||||
kzgwomvqk-rmttgjmiv-abwziom-330[mtnsk]
|
|
||||||
xjgjmapg-wpiit-vivgtndn-499[weiza]
|
|
||||||
cebwrpgvyr-pnaql-grpuabybtl-117[xqmjc]
|
|
||||||
egdytrixat-uadltg-uxcpcrxcv-297[ctxad]
|
|
||||||
gvaaz-ezf-tfswjdft-623[fatzd]
|
|
||||||
excdklvo-mkxni-mykdsxq-mecdywob-cobfsmo-692[mocdk]
|
|
||||||
ovbunmneqbhf-pnaql-bcrengvbaf-351[mtgcw]
|
|
||||||
nwlddtqtpo-clmmte-nzyeltyxpye-509[ydnsh]
|
|
||||||
froruixo-udeelw-vwrudjh-309[sxgvu]
|
|
||||||
hqcfqwydw-sxesebqju-cqhaujydw-660[fghtp]
|
|
||||||
bpvctixr-rwdrdapit-ldgzhwde-895[sfioq]
|
|
||||||
ajmrxjlcren-yaxsnlcrun-bljenwpna-qdwc-fxatbqxy-797[fnjis]
|
|
||||||
lugjuacha-zfiqyl-uhufsmcm-370[uacfh]
|
|
||||||
houngfgxjuay-pkrrehkgt-iayzuskx-ykxboik-852[kguxy]
|
|
||||||
gcfcnuls-aluxy-luxciuwncpy-jfumncw-alumm-uhufsmcm-214[zftvs]
|
|
||||||
oxmeeuruqp-otaoaxmfq-emxqe-794[drzyv]
|
|
||||||
nvrgfezqvu-upv-tfekrzedvek-867[evfkr]
|
|
||||||
uwtojhynqj-xhfajsljw-mzsy-zxjw-yjxynsl-801[jyswx]
|
|
||||||
zixppfcfba-yxphbq-jxohbqfkd-887[zgoyn]
|
|
||||||
qczcftiz-qvcqczohs-aobousasbh-402[coqsz]
|
|
||||||
lejkrscv-upv-tfekrzedvek-919[ekvrc]
|
|
||||||
chnylhuncihuf-zfiqyl-zchuhwcha-604[magtu]
|
|
||||||
vetllbybxw-lvtoxgzxk-angm-ybgtgvbgz-605[gbltv]
|
|
||||||
dmpuamofuhq-omzpk-qzsuzqqduzs-820[quzmd]
|
|
||||||
rdggdhxkt-gpqqxi-rdcipxcbtci-219[yrlha]
|
|
||||||
tfejldvi-xiruv-wcfnvi-jvimztvj-243[fqclr]
|
|
||||||
foadouwbu-dzoghwq-ufogg-gvwddwbu-324[dgouw]
|
|
||||||
tbxmlkfwba-pzxsbkdbo-erkq-bkdfkbbofkd-913[hgans]
|
|
||||||
gpbepvxcv-rpcsn-itrwcdadvn-453[sbuap]
|
|
||||||
szfyrqriuflj-srjbvk-ivrthlzjzkzfe-633[sqwil]
|
|
||||||
jqwpihizlwca-jiasmb-ivitgaqa-122[amzud]
|
|
||||||
bqvvu-ywjzu-qoan-paopejc-264[ajopq]
|
|
||||||
mvydjvxodqz-wpiit-gvwjmvojmt-525[oabkn]
|
|
||||||
ktiaaqnqml-moo-zmikycqaqbqwv-252[qamik]
|
|
||||||
dpmpsgvm-cbtlfu-sfdfjwjoh-909[pntzm]
|
|
||||||
nzcczdtgp-nsznzwlep-qtylyntyr-171[nztyc]
|
|
||||||
htqtwkzq-idj-rfwpjynsl-723[ndmel]
|
|
||||||
gzefmnxq-nmewqf-eqdhuoqe-300[eqfmn]
|
|
||||||
qzlozfhmf-cxd-lzqjdshmf-469[fzdhl]
|
|
||||||
pinovwgz-mvydjvxodqz-xviyt-xjvodib-yzndbi-447[pztyh]
|
|
||||||
gspsvjyp-gerhc-gsexmrk-vieguymwmxmsr-256[gmser]
|
|
||||||
ygcrqpkbgf-tcfkqcevkxg-hnqygt-vtckpkpi-102[puovq]
|
|
||||||
jsehsyafy-tmffq-vwhdgqewfl-112[rnach]
|
|
||||||
qmpmxevc-kvehi-hci-eguymwmxmsr-204[mechi]
|
|
||||||
tcfkqcevkxg-tcorcikpi-gii-gpikpggtkpi-544[wytzs]
|
|
||||||
pbafhzre-tenqr-enzcntvat-onfxrg-ratvarrevat-845[raten]
|
|
||||||
shoewudys-rqiauj-bqrehqjeho-270[ehqjo]
|
|
||||||
xjinphzm-bmvyz-ojk-nzxmzo-ezggtwzvi-zibdizzmdib-577[zimbd]
|
|
||||||
rkpqxyib-bdd-pbosfzbp-939[bpdfi]
|
|
||||||
vcibutulxiom-vumeyn-omyl-nymncha-786[ziwys]
|
|
||||||
nvrgfezqvu-upv-ivrthlzjzkzfe-321[vzefr]
|
|
||||||
krxqjijamxdb-yujbcrl-pajbb-dbna-cnbcrwp-303[bjacr]
|
|
||||||
zixppfcfba-mixpqfz-doxpp-qbzeklildv-653[zdxgu]
|
|
||||||
lsyrkjkbnyec-mkxni-gybucryz-640[ykbcn]
|
|
||||||
qspkfdujmf-kfmmzcfbo-dpoubjonfou-155[fomub]
|
|
||||||
sno-rdbqds-rbzudmfdq-gtms-cdozqsldms-755[yaubo]
|
|
||||||
houngfgxjuay-vrgyzoi-mxgyy-ygrky-462[ygoru]
|
|
||||||
gcfcnuls-aluxy-wifilzof-yaa-omyl-nymncha-266[alycf]
|
|
||||||
hwdtljsnh-gzssd-xfqjx-463[fajso]
|
|
||||||
htwwtxnaj-idj-hzxytrjw-xjwanhj-281[hzrnq]
|
|
||||||
sorozgxe-mxgjk-lruckx-xkgiwaoyozout-176[oxgkr]
|
|
||||||
ynssr-vtgwr-vhtmbgz-ftgtzxfxgm-475[gtfmr]
|
|
||||||
rtqlgevkng-lgnnadgcp-yqtmujqr-648[nelzc]
|
|
||||||
kwtwznct-rmttgjmiv-camz-bmabqvo-460[nmbls]
|
|
||||||
surmhfwloh-fdqgb-wudlqlqj-959[lqdfh]
|
|
||||||
iutyaskx-mxgjk-hgyqkz-rumoyzoiy-644[ykgim]
|
|
||||||
jqwpihizlwca-kivlg-kwibqvo-wxmzibqwva-434[iwqva]
|
|
||||||
amppmqgtc-djmucp-asqrmkcp-qcptgac-496[cpmaq]
|
|
||||||
apuut-xjmmjndqz-wpiit-vivgtndn-187[intdj]
|
|
||||||
ftzgxmbv-vtgwr-wxlbzg-267[gbtvw]
|
|
||||||
eza-dpncpe-mldvpe-wlmzclezcj-171[eclpz]
|
|
||||||
rnqnyfwd-lwfij-wfggny-ijuqtdrjsy-827[fjnwy]
|
|
||||||
aflwjfslagfsd-xdgowj-ghwjslagfk-684[fgajl]
|
|
||||||
lzfmdshb-eknvdq-rsnqzfd-859[ybjfz]
|
|
||||||
hqtyeqsjylu-uww-tufbeocudj-582[uejqt]
|
|
||||||
qfkkj-nsznzwlep-dstaatyr-223[aknst]
|
|
||||||
ubhatstkwhnl-xzz-kxvxbobgz-267[umogq]
|
|
||||||
xekdwvwnzkqo-oywrajcan-dqjp-ykjpwejiajp-238[mtbvo]
|
|
||||||
cebwrpgvyr-sybjre-qrfvta-195[rbevy]
|
|
||||||
hjgbwuladw-usfvq-esfsywewfl-710[mpiho]
|
|
||||||
lujbbrornm-kjbtnc-fxatbqxy-823[ywamx]
|
|
||||||
ugjjgkanw-uzgugdslw-hmjuzskafy-476[stfoh]
|
|
||||||
fmsledevhsyw-fewoix-pefsvexsvc-724[scznt]
|
|
||||||
zlkprjbo-doxab-bdd-obzbfsfkd-419[bdofk]
|
|
||||||
vcibutulxiom-wuhxs-nluchcha-864[uchil]
|
|
||||||
yhkpvhjapcl-ihzrla-dvyrzovw-305[qyhmr]
|
|
||||||
hmsdqmzshnmzk-qzlozfhmf-qzaahs-zmzkxrhr-287[zhmqs]
|
|
||||||
gzefmnxq-dmnnuf-etubbuzs-482[nubef]
|
|
||||||
ejpanjwpekjwh-ywjzu-ykwpejc-nayaerejc-550[jewap]
|
|
||||||
cxy-bnlanc-npp-mnyuxhvnwc-433[nvmyt]
|
|
||||||
jfifqxov-doxab-gbiivybxk-obzbfsfkd-601[epyzn]
|
|
||||||
pkl-oaynap-xqjju-wjwhuoeo-680[joapu]
|
|
||||||
jef-iushuj-hqtyeqsjylu-rqiauj-bewyijysi-842[hyzgu]
|
|
||||||
dfcxsqhwzs-tzcksf-aobousasbh-896[wkqxh]
|
|
||||||
lahxpnwrl-ljwmh-bjunb-693[jtoyp]
|
|
||||||
rnqnyfwd-lwfij-gfxpjy-wjhjnansl-931[jnfwl]
|
|
||||||
buzahisl-jvyyvzpcl-jhukf-jvhapun-klwhyatlua-617[ahluj]
|
|
||||||
jchipqat-eaphixr-vgphh-bpgztixcv-271[hpiac]
|
|
||||||
zlkprjbo-doxab-avb-absbilmjbkq-107[wbymr]
|
|
||||||
eqpuwogt-itcfg-dcumgv-fgxgnqrogpv-362[gcfop]
|
|
||||||
rdadguja-qjccn-gtrtxkxcv-791[cadgj]
|
|
||||||
etaqigpke-oknkvcta-itcfg-hnqygt-hkpcpekpi-674[mcoya]
|
|
||||||
gspsvjyp-hci-wxsveki-386[myuqs]
|
|
||||||
jef-iushuj-vbemuh-mehaixef-920[ehufi]
|
|
||||||
encuukhkgf-fag-tgceswkukvkqp-752[kguce]
|
|
||||||
npmhcargjc-njyqrga-epyqq-kypicrgle-444[cgpqr]
|
|
||||||
xtwtelcj-rclop-mldvpe-dpcgtnpd-379[pcdlt]
|
|
||||||
nchhg-kpwkwtibm-mvoqvmmzqvo-252[mvhko]
|
|
||||||
uqtqbizg-ozilm-jiasmb-uizsmbqvo-122[ktxvs]
|
|
||||||
nwlddtqtpo-mldvpe-fdpc-epdetyr-509[dpetl]
|
|
||||||
wfintfhynaj-idj-qfgtwfytwd-229[efudw]
|
|
||||||
yhwooebeaz-nwilwcejc-ydkykhwpa-owhao-160[skuyi]
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import hashlib
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def crack_password(door_id: str) -> str:
|
|
||||||
password: list[str] = []
|
|
||||||
for i in itertools.count():
|
|
||||||
hash = hashlib.md5((door_id + str(i)).encode()).hexdigest()
|
|
||||||
if not hash.startswith("00000"):
|
|
||||||
continue
|
|
||||||
password.append(hash[5])
|
|
||||||
if len(password) == 8:
|
|
||||||
break
|
|
||||||
return "".join(password)
|
|
||||||
|
|
||||||
return crack_password(input.strip())
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
wtnhxymk
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import hashlib
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def crack_password(door_id: str) -> str:
|
|
||||||
password = ["_"] * 8
|
|
||||||
for i in itertools.count():
|
|
||||||
hash = hashlib.md5((door_id + str(i)).encode()).hexdigest()
|
|
||||||
if not hash.startswith("00000"):
|
|
||||||
continue
|
|
||||||
pos = hash[5]
|
|
||||||
if pos not in ("0", "1", "2", "3", "4", "5", "6", "7"):
|
|
||||||
continue
|
|
||||||
if password[int(pos)] != "_":
|
|
||||||
continue
|
|
||||||
password[int(pos)] = hash[6]
|
|
||||||
if all(c != "_" for c in password):
|
|
||||||
break
|
|
||||||
return "".join(password)
|
|
||||||
|
|
||||||
return crack_password(input.strip())
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
wtnhxymk
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def error_correct(messages: list[str]) -> str:
|
|
||||||
res: list[str] = []
|
|
||||||
for i in range(len(messages[0])):
|
|
||||||
res.append(collections.Counter(l[i] for l in messages).most_common()[0][0])
|
|
||||||
return "".join(res)
|
|
||||||
|
|
||||||
messages = input.splitlines()
|
|
||||||
return error_correct(messages)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,572 +0,0 @@
|
||||||
cqvkxhip
|
|
||||||
tgswqbjh
|
|
||||||
ymbqjoau
|
|
||||||
yakqfnvb
|
|
||||||
klwpoxak
|
|
||||||
ebftersc
|
|
||||||
muhqajoy
|
|
||||||
sttjluap
|
|
||||||
nbfrccxf
|
|
||||||
pjtxsrdt
|
|
||||||
pcehiulx
|
|
||||||
imtchqqu
|
|
||||||
shtdcptu
|
|
||||||
gziwdtvt
|
|
||||||
gkisoote
|
|
||||||
dmodaoyb
|
|
||||||
mqykfphl
|
|
||||||
rchfhsxr
|
|
||||||
expmfmmi
|
|
||||||
eyyjzupd
|
|
||||||
ysoqeeib
|
|
||||||
phedgslu
|
|
||||||
xmwituwf
|
|
||||||
cibvkswh
|
|
||||||
dusqdmkm
|
|
||||||
oajlhpcj
|
|
||||||
nqbvrtsv
|
|
||||||
eytohbvb
|
|
||||||
byjvrycg
|
|
||||||
oorhjlll
|
|
||||||
bflfjdaz
|
|
||||||
wtydcsem
|
|
||||||
xinelpsx
|
|
||||||
bkrenkkc
|
|
||||||
kuhljsqo
|
|
||||||
fhkrtpkg
|
|
||||||
qkiohori
|
|
||||||
rzebhkwv
|
|
||||||
prpldmyf
|
|
||||||
dstdrxbo
|
|
||||||
jgtenhmc
|
|
||||||
vpibddhk
|
|
||||||
nkytfkno
|
|
||||||
hldsxaoq
|
|
||||||
qgwusrkd
|
|
||||||
xlsuudux
|
|
||||||
buxfxaiy
|
|
||||||
uljrvuen
|
|
||||||
awoyppai
|
|
||||||
igplagub
|
|
||||||
kqfiefgc
|
|
||||||
cqjukquf
|
|
||||||
djxuuizu
|
|
||||||
zvuetjli
|
|
||||||
uwcrclvy
|
|
||||||
gtdlktiv
|
|
||||||
cvwbsaxj
|
|
||||||
zpwzzepj
|
|
||||||
vmdmkgqz
|
|
||||||
qfsxdnrf
|
|
||||||
mhqtikwv
|
|
||||||
fduxoluy
|
|
||||||
emhhanfc
|
|
||||||
zglqrchc
|
|
||||||
jvvjspsu
|
|
||||||
rndsqnky
|
|
||||||
itzjeqfr
|
|
||||||
lnpslqsj
|
|
||||||
yxohoogq
|
|
||||||
oqmmzizo
|
|
||||||
ginjbszz
|
|
||||||
qhdnjnxs
|
|
||||||
mjtbhrzl
|
|
||||||
zorxielb
|
|
||||||
xflyknux
|
|
||||||
xrssqfpx
|
|
||||||
tcvrpzxn
|
|
||||||
sgnholch
|
|
||||||
nlpbrofn
|
|
||||||
qclukwkr
|
|
||||||
foylzchc
|
|
||||||
hieqxicp
|
|
||||||
nqvwnhpt
|
|
||||||
ssubumix
|
|
||||||
vtbpattp
|
|
||||||
ncgmzjmv
|
|
||||||
wtzedksg
|
|
||||||
mvlatfbj
|
|
||||||
ithfpwgr
|
|
||||||
dmqvfilt
|
|
||||||
lbnovpit
|
|
||||||
hqfzxflr
|
|
||||||
pgeeancn
|
|
||||||
rpdiwwle
|
|
||||||
ehkipwnx
|
|
||||||
pncgkqey
|
|
||||||
chzakbif
|
|
||||||
doooixwk
|
|
||||||
xztjzzrs
|
|
||||||
vhyqtnja
|
|
||||||
cbzmragf
|
|
||||||
rxqhsehw
|
|
||||||
rxzuqnoy
|
|
||||||
kvldlabx
|
|
||||||
crsslumd
|
|
||||||
cbxmypaq
|
|
||||||
qzevgrco
|
|
||||||
teiavilb
|
|
||||||
yjuhsfkj
|
|
||||||
asutrkwn
|
|
||||||
csgkdxtw
|
|
||||||
fbdppqjn
|
|
||||||
ivaewkpq
|
|
||||||
iznlnknb
|
|
||||||
btxpvjxk
|
|
||||||
rrpatocg
|
|
||||||
yxgkxenm
|
|
||||||
yrszvqpo
|
|
||||||
olhjkcac
|
|
||||||
dmaxpvog
|
|
||||||
wzicsunc
|
|
||||||
eoaozekn
|
|
||||||
oqbcrcje
|
|
||||||
jjpcwqae
|
|
||||||
zlyibfto
|
|
||||||
nkkarjbd
|
|
||||||
rrsrbrlr
|
|
||||||
gllxvuve
|
|
||||||
pkanrgds
|
|
||||||
bylfpxdm
|
|
||||||
tzkvedot
|
|
||||||
eidxawif
|
|
||||||
nwvcofjz
|
|
||||||
xkfverdu
|
|
||||||
wgncgvvy
|
|
||||||
epwrztow
|
|
||||||
mybcqyza
|
|
||||||
arxfmrfd
|
|
||||||
utcbwrta
|
|
||||||
iwdfihgp
|
|
||||||
tkskahas
|
|
||||||
vvkmupxb
|
|
||||||
ffetjcgu
|
|
||||||
nmaoaihp
|
|
||||||
wilheaug
|
|
||||||
pmshnqgg
|
|
||||||
pzbjnbtw
|
|
||||||
zlxbrzhz
|
|
||||||
xwikirug
|
|
||||||
rprmighu
|
|
||||||
xaaaioxr
|
|
||||||
mqxpjfgw
|
|
||||||
ejhezvgh
|
|
||||||
brjmtonm
|
|
||||||
wskkweze
|
|
||||||
kkaxuuib
|
|
||||||
mdrbckzy
|
|
||||||
idpwlzfg
|
|
||||||
fqfdktuq
|
|
||||||
jnurlaba
|
|
||||||
bbgftoqt
|
|
||||||
sgiuadsr
|
|
||||||
pwzcfnir
|
|
||||||
mytlszbv
|
|
||||||
uxcwljqs
|
|
||||||
lyrangoq
|
|
||||||
lnmbpgej
|
|
||||||
qjjugsps
|
|
||||||
kptbbita
|
|
||||||
sppvfzzw
|
|
||||||
ghkleimh
|
|
||||||
aupnupvy
|
|
||||||
tzxtqzev
|
|
||||||
dbcyghnu
|
|
||||||
qaygxqjo
|
|
||||||
vgscfmwb
|
|
||||||
raoylhwp
|
|
||||||
gewyhjjh
|
|
||||||
bsozmyma
|
|
||||||
skpkdxcx
|
|
||||||
qcngjsxk
|
|
||||||
xlznquqa
|
|
||||||
tztogrtf
|
|
||||||
bvnovdaf
|
|
||||||
crlrvjsq
|
|
||||||
afbpxgwl
|
|
||||||
gwbeomez
|
|
||||||
aezkolyv
|
|
||||||
cooulafb
|
|
||||||
dnrsyvda
|
|
||||||
ljudufiz
|
|
||||||
ctwxlryc
|
|
||||||
djmebdhh
|
|
||||||
ktoaoxmd
|
|
||||||
afqaqbbj
|
|
||||||
mobvjjyk
|
|
||||||
yplopnti
|
|
||||||
kwkqjzol
|
|
||||||
fcvncctm
|
|
||||||
pkbzlejz
|
|
||||||
axxxbdqj
|
|
||||||
gnjurhkl
|
|
||||||
qakjwsvw
|
|
||||||
vkoagapm
|
|
||||||
tpeyuvqi
|
|
||||||
omejmbtw
|
|
||||||
yhitogvj
|
|
||||||
ybpwtcvb
|
|
||||||
xtnuyfyh
|
|
||||||
isvpwgza
|
|
||||||
ozdntafh
|
|
||||||
hysgmgvh
|
|
||||||
zbgkvytj
|
|
||||||
fntphlnd
|
|
||||||
xjyujmbw
|
|
||||||
uvnhgphl
|
|
||||||
decpnkwq
|
|
||||||
kmkepzcp
|
|
||||||
lwegdttv
|
|
||||||
epkpsehc
|
|
||||||
uouovxth
|
|
||||||
agvppzan
|
|
||||||
zxllwuvw
|
|
||||||
ektemcjl
|
|
||||||
zegwoyif
|
|
||||||
hqhrdyzq
|
|
||||||
qiyxumhk
|
|
||||||
trbebaka
|
|
||||||
etjxsihf
|
|
||||||
yxjgfvnf
|
|
||||||
joywcwmz
|
|
||||||
teeqmoik
|
|
||||||
qjknvrmq
|
|
||||||
avpxxuni
|
|
||||||
naemzbma
|
|
||||||
jpbxexkk
|
|
||||||
ifevcqzn
|
|
||||||
tcnibepd
|
|
||||||
yzppffml
|
|
||||||
xhqgnbqc
|
|
||||||
lvvopbzw
|
|
||||||
pnzmeuon
|
|
||||||
ovzzvvsh
|
|
||||||
mcqmuqjp
|
|
||||||
oadvyhfk
|
|
||||||
tkgnxpyy
|
|
||||||
mvbisygc
|
|
||||||
occsftic
|
|
||||||
fawfwbvy
|
|
||||||
hqmqpuam
|
|
||||||
ptjxkjtk
|
|
||||||
hzxuosye
|
|
||||||
zingpdhg
|
|
||||||
jiombirp
|
|
||||||
vjtvrses
|
|
||||||
fdlzglxq
|
|
||||||
ggooqynz
|
|
||||||
fmwotljx
|
|
||||||
mnzzmfro
|
|
||||||
vtvjvcqu
|
|
||||||
kmpiufet
|
|
||||||
hwsvlelq
|
|
||||||
wdenjddo
|
|
||||||
gfqtffby
|
|
||||||
cxneiwee
|
|
||||||
wtribxye
|
|
||||||
gvuszzzu
|
|
||||||
pugjyrqp
|
|
||||||
yewglqml
|
|
||||||
beqgcrqn
|
|
||||||
azmucset
|
|
||||||
kicbbxtu
|
|
||||||
bmihylgt
|
|
||||||
edjrinqf
|
|
||||||
vvdretyn
|
|
||||||
zkakzfkp
|
|
||||||
qbraqzwo
|
|
||||||
ujpgjzdc
|
|
||||||
hdobaxgr
|
|
||||||
atghhhaw
|
|
||||||
ouucgcws
|
|
||||||
iodycvik
|
|
||||||
ljjdonpe
|
|
||||||
nnekdlaz
|
|
||||||
lbrzjrkn
|
|
||||||
jjwewnji
|
|
||||||
tfdkekdf
|
|
||||||
eidbjaiz
|
|
||||||
hssryuot
|
|
||||||
oajvmyuj
|
|
||||||
fziqlofo
|
|
||||||
uisyryfh
|
|
||||||
ssucyqxa
|
|
||||||
wyvmbyuq
|
|
||||||
fomhuool
|
|
||||||
scyogldx
|
|
||||||
uznjymzz
|
|
||||||
tnmfndhu
|
|
||||||
wmaiqhjd
|
|
||||||
jrtvsvys
|
|
||||||
zpgdzcdw
|
|
||||||
rpzjgslv
|
|
||||||
uulfdwba
|
|
||||||
gfctmdso
|
|
||||||
jcqqmnxe
|
|
||||||
hbzxgupz
|
|
||||||
zbhofhjo
|
|
||||||
szmkzygs
|
|
||||||
ydsnzkwe
|
|
||||||
djbctccs
|
|
||||||
utqjhlzr
|
|
||||||
dslwhsra
|
|
||||||
ujxkxald
|
|
||||||
panonqfl
|
|
||||||
brhfqycu
|
|
||||||
adewetuw
|
|
||||||
rzsxqpyd
|
|
||||||
ypfaxikk
|
|
||||||
vgoncwxp
|
|
||||||
kqcrmyil
|
|
||||||
vwsswwlt
|
|
||||||
bjxktjpi
|
|
||||||
lyzyaehh
|
|
||||||
noccjwkt
|
|
||||||
volhauxw
|
|
||||||
zeeaczxk
|
|
||||||
cgiyzqtg
|
|
||||||
wrflucju
|
|
||||||
mupwfuwq
|
|
||||||
tlgvwoqm
|
|
||||||
laybkcqh
|
|
||||||
mawgcbyq
|
|
||||||
ofuaudem
|
|
||||||
gtkhbeuu
|
|
||||||
svrzwaxw
|
|
||||||
ohqiojux
|
|
||||||
mnmttbve
|
|
||||||
jlluhifp
|
|
||||||
zuhdfnaq
|
|
||||||
hsedbspi
|
|
||||||
rkqoshpx
|
|
||||||
qzvdlvuc
|
|
||||||
rwbglsly
|
|
||||||
djpwgibn
|
|
||||||
edzgvmws
|
|
||||||
teacriww
|
|
||||||
gcvzijna
|
|
||||||
llokdnqu
|
|
||||||
dkywadmh
|
|
||||||
madxishe
|
|
||||||
feharxjj
|
|
||||||
sqzpbcgu
|
|
||||||
ohmflgzd
|
|
||||||
qrrsyggg
|
|
||||||
sxxrafvs
|
|
||||||
xnaterpk
|
|
||||||
tdiytzmh
|
|
||||||
wecsvxnm
|
|
||||||
uiksxtzm
|
|
||||||
ypqpajdd
|
|
||||||
fyaoughg
|
|
||||||
epvdtbni
|
|
||||||
pyynubyw
|
|
||||||
dpjdgbaf
|
|
||||||
vlomtyym
|
|
||||||
zpitxkwr
|
|
||||||
tzclhsoz
|
|
||||||
wduicuqg
|
|
||||||
sltpfxwo
|
|
||||||
iyrmivtk
|
|
||||||
hdmfndbx
|
|
||||||
znqwrzrs
|
|
||||||
fxktgznx
|
|
||||||
indnyerl
|
|
||||||
airalvum
|
|
||||||
jfsfyysy
|
|
||||||
svztyezl
|
|
||||||
qsjpktkb
|
|
||||||
xfujksji
|
|
||||||
jkymepzm
|
|
||||||
lrtlztdg
|
|
||||||
nluspned
|
|
||||||
huwocmgk
|
|
||||||
nygyugbk
|
|
||||||
ryzsjezz
|
|
||||||
uxwwczou
|
|
||||||
awrcdzad
|
|
||||||
tobynxxz
|
|
||||||
swicrqsv
|
|
||||||
jqywnfns
|
|
||||||
kdzvcwmh
|
|
||||||
gogmydcr
|
|
||||||
dkcuvthh
|
|
||||||
hkmraojf
|
|
||||||
kcgbpskp
|
|
||||||
qgknjgtt
|
|
||||||
oywbqczg
|
|
||||||
oiqpwmcv
|
|
||||||
fxjrhvce
|
|
||||||
laaizayr
|
|
||||||
xfcldeuu
|
|
||||||
govaqtom
|
|
||||||
dbcymhvq
|
|
||||||
yjzeuyxc
|
|
||||||
sejtfvqn
|
|
||||||
pbvavgov
|
|
||||||
tpitipok
|
|
||||||
lnfxhraz
|
|
||||||
whbqsgli
|
|
||||||
beuhoifp
|
|
||||||
pojyvmuz
|
|
||||||
yynnekkn
|
|
||||||
nxggwods
|
|
||||||
nkhpvkct
|
|
||||||
rcxwiluq
|
|
||||||
gnhsygno
|
|
||||||
nwwgewiu
|
|
||||||
kcbqnvcb
|
|
||||||
jiisqtqt
|
|
||||||
dochmmei
|
|
||||||
cwmwfrwl
|
|
||||||
hcautqpg
|
|
||||||
oihxktet
|
|
||||||
yrcekmmv
|
|
||||||
lxoyyqxp
|
|
||||||
vlbvilra
|
|
||||||
uqnsdjdf
|
|
||||||
jadyopgr
|
|
||||||
iwunbaps
|
|
||||||
wrplbwpj
|
|
||||||
shfuglla
|
|
||||||
knhgmlsg
|
|
||||||
riknnrmg
|
|
||||||
hoxzmvsr
|
|
||||||
qvqdqxrv
|
|
||||||
lyyvpffj
|
|
||||||
ghhflirv
|
|
||||||
khmzdart
|
|
||||||
qixervoz
|
|
||||||
fdgemrrn
|
|
||||||
uvnbxxpz
|
|
||||||
lqvanhjt
|
|
||||||
umorijwr
|
|
||||||
sgogttye
|
|
||||||
jlfgdzoc
|
|
||||||
barxtobf
|
|
||||||
czrzjduo
|
|
||||||
vlgkvnek
|
|
||||||
prknsjfr
|
|
||||||
uleiwboe
|
|
||||||
mxaswrft
|
|
||||||
ihqcepmh
|
|
||||||
awfqxael
|
|
||||||
hqvzrkbw
|
|
||||||
zwvciodj
|
|
||||||
czyrbdhq
|
|
||||||
ixhfswys
|
|
||||||
ndauoxcn
|
|
||||||
lhhwxiry
|
|
||||||
adpagord
|
|
||||||
suuxfdnq
|
|
||||||
nynlzhfj
|
|
||||||
ffmwgpyj
|
|
||||||
idbgnwev
|
|
||||||
wuculiup
|
|
||||||
cymyvkgm
|
|
||||||
fifqbhvs
|
|
||||||
ijxfzmrq
|
|
||||||
hugjbhin
|
|
||||||
aeffbcfp
|
|
||||||
ywxtejmz
|
|
||||||
qpprytsg
|
|
||||||
kcmlmbeo
|
|
||||||
ruomfeex
|
|
||||||
vvtpcfnk
|
|
||||||
zcihodib
|
|
||||||
nnfoffoi
|
|
||||||
rmldwivo
|
|
||||||
ejrzqyln
|
|
||||||
ifnjdpab
|
|
||||||
abiidqmo
|
|
||||||
aglmsjkr
|
|
||||||
xwqghpda
|
|
||||||
gufhhjer
|
|
||||||
ubjzhfgj
|
|
||||||
glhagkrm
|
|
||||||
wiwhahqd
|
|
||||||
lbyhcebg
|
|
||||||
ahhhxupc
|
|
||||||
dulzuzyi
|
|
||||||
xxdqhiod
|
|
||||||
ydkrksxo
|
|
||||||
pgdazjfi
|
|
||||||
ebrjoyrr
|
|
||||||
maejpwkm
|
|
||||||
xekimgsi
|
|
||||||
jvntcosc
|
|
||||||
wrfiyvmb
|
|
||||||
hfgzughl
|
|
||||||
wgbwylwl
|
|
||||||
tpjgkkye
|
|
||||||
wsspddss
|
|
||||||
ctoyeuvv
|
|
||||||
skjcqabz
|
|
||||||
wfutxuew
|
|
||||||
oqymawht
|
|
||||||
xeqmpvcm
|
|
||||||
hrmflsjx
|
|
||||||
rstnycbh
|
|
||||||
aavqqxcc
|
|
||||||
ouawtykt
|
|
||||||
kmxcjxxe
|
|
||||||
heudiqlo
|
|
||||||
srmiwwrw
|
|
||||||
ufavnfdy
|
|
||||||
xfokmkax
|
|
||||||
vnzztetb
|
|
||||||
goevrbmb
|
|
||||||
wfkthpfj
|
|
||||||
ddesetaa
|
|
||||||
vygkqvdn
|
|
||||||
qsyemmqr
|
|
||||||
iqlyiqtx
|
|
||||||
esvuchui
|
|
||||||
pfslklic
|
|
||||||
genqjcpi
|
|
||||||
bumqsxkx
|
|
||||||
msvbjoip
|
|
||||||
lghjsxdw
|
|
||||||
elukpmbf
|
|
||||||
qmipavgm
|
|
||||||
iafoaecd
|
|
||||||
usidajnf
|
|
||||||
vxsymknf
|
|
||||||
oyfjsysv
|
|
||||||
mpwtxlvv
|
|
||||||
kogsobli
|
|
||||||
jmgwktdj
|
|
||||||
rgztrmby
|
|
||||||
dnrcfisj
|
|
||||||
ottnehjl
|
|
||||||
zsqbinds
|
|
||||||
zmufvgrd
|
|
||||||
fcalplxx
|
|
||||||
jcwqwnvm
|
|
||||||
myjowlcd
|
|
||||||
nodixwaa
|
|
||||||
phfnpbve
|
|
||||||
kexcgape
|
|
||||||
ldmlswbk
|
|
||||||
naxeikbg
|
|
||||||
cgmlnbsb
|
|
||||||
vuwbdcnb
|
|
||||||
bwxbhmgy
|
|
||||||
ziadnccv
|
|
||||||
bacypeeq
|
|
||||||
tbluknup
|
|
||||||
btanytry
|
|
||||||
bqddnwwl
|
|
||||||
urieqmyv
|
|
||||||
csrdslqa
|
|
||||||
fsfiyiai
|
|
||||||
ceasodly
|
|
||||||
jetpbhos
|
|
||||||
xcqzgosd
|
|
||||||
ydqiuyzh
|
|
||||||
vxpzumjp
|
|
||||||
ruwlxvle
|
|
||||||
exrrmafx
|
|
||||||
kbfikzdl
|
|
||||||
bhvvzgfn
|
|
||||||
ivckwbga
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def error_correct(messages: list[str]) -> str:
|
|
||||||
res: list[str] = []
|
|
||||||
for i in range(len(messages[0])):
|
|
||||||
res.append(collections.Counter(l[i] for l in messages).most_common()[-1][0])
|
|
||||||
return "".join(res)
|
|
||||||
|
|
||||||
messages = input.splitlines()
|
|
||||||
return error_correct(messages)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,572 +0,0 @@
|
||||||
cqvkxhip
|
|
||||||
tgswqbjh
|
|
||||||
ymbqjoau
|
|
||||||
yakqfnvb
|
|
||||||
klwpoxak
|
|
||||||
ebftersc
|
|
||||||
muhqajoy
|
|
||||||
sttjluap
|
|
||||||
nbfrccxf
|
|
||||||
pjtxsrdt
|
|
||||||
pcehiulx
|
|
||||||
imtchqqu
|
|
||||||
shtdcptu
|
|
||||||
gziwdtvt
|
|
||||||
gkisoote
|
|
||||||
dmodaoyb
|
|
||||||
mqykfphl
|
|
||||||
rchfhsxr
|
|
||||||
expmfmmi
|
|
||||||
eyyjzupd
|
|
||||||
ysoqeeib
|
|
||||||
phedgslu
|
|
||||||
xmwituwf
|
|
||||||
cibvkswh
|
|
||||||
dusqdmkm
|
|
||||||
oajlhpcj
|
|
||||||
nqbvrtsv
|
|
||||||
eytohbvb
|
|
||||||
byjvrycg
|
|
||||||
oorhjlll
|
|
||||||
bflfjdaz
|
|
||||||
wtydcsem
|
|
||||||
xinelpsx
|
|
||||||
bkrenkkc
|
|
||||||
kuhljsqo
|
|
||||||
fhkrtpkg
|
|
||||||
qkiohori
|
|
||||||
rzebhkwv
|
|
||||||
prpldmyf
|
|
||||||
dstdrxbo
|
|
||||||
jgtenhmc
|
|
||||||
vpibddhk
|
|
||||||
nkytfkno
|
|
||||||
hldsxaoq
|
|
||||||
qgwusrkd
|
|
||||||
xlsuudux
|
|
||||||
buxfxaiy
|
|
||||||
uljrvuen
|
|
||||||
awoyppai
|
|
||||||
igplagub
|
|
||||||
kqfiefgc
|
|
||||||
cqjukquf
|
|
||||||
djxuuizu
|
|
||||||
zvuetjli
|
|
||||||
uwcrclvy
|
|
||||||
gtdlktiv
|
|
||||||
cvwbsaxj
|
|
||||||
zpwzzepj
|
|
||||||
vmdmkgqz
|
|
||||||
qfsxdnrf
|
|
||||||
mhqtikwv
|
|
||||||
fduxoluy
|
|
||||||
emhhanfc
|
|
||||||
zglqrchc
|
|
||||||
jvvjspsu
|
|
||||||
rndsqnky
|
|
||||||
itzjeqfr
|
|
||||||
lnpslqsj
|
|
||||||
yxohoogq
|
|
||||||
oqmmzizo
|
|
||||||
ginjbszz
|
|
||||||
qhdnjnxs
|
|
||||||
mjtbhrzl
|
|
||||||
zorxielb
|
|
||||||
xflyknux
|
|
||||||
xrssqfpx
|
|
||||||
tcvrpzxn
|
|
||||||
sgnholch
|
|
||||||
nlpbrofn
|
|
||||||
qclukwkr
|
|
||||||
foylzchc
|
|
||||||
hieqxicp
|
|
||||||
nqvwnhpt
|
|
||||||
ssubumix
|
|
||||||
vtbpattp
|
|
||||||
ncgmzjmv
|
|
||||||
wtzedksg
|
|
||||||
mvlatfbj
|
|
||||||
ithfpwgr
|
|
||||||
dmqvfilt
|
|
||||||
lbnovpit
|
|
||||||
hqfzxflr
|
|
||||||
pgeeancn
|
|
||||||
rpdiwwle
|
|
||||||
ehkipwnx
|
|
||||||
pncgkqey
|
|
||||||
chzakbif
|
|
||||||
doooixwk
|
|
||||||
xztjzzrs
|
|
||||||
vhyqtnja
|
|
||||||
cbzmragf
|
|
||||||
rxqhsehw
|
|
||||||
rxzuqnoy
|
|
||||||
kvldlabx
|
|
||||||
crsslumd
|
|
||||||
cbxmypaq
|
|
||||||
qzevgrco
|
|
||||||
teiavilb
|
|
||||||
yjuhsfkj
|
|
||||||
asutrkwn
|
|
||||||
csgkdxtw
|
|
||||||
fbdppqjn
|
|
||||||
ivaewkpq
|
|
||||||
iznlnknb
|
|
||||||
btxpvjxk
|
|
||||||
rrpatocg
|
|
||||||
yxgkxenm
|
|
||||||
yrszvqpo
|
|
||||||
olhjkcac
|
|
||||||
dmaxpvog
|
|
||||||
wzicsunc
|
|
||||||
eoaozekn
|
|
||||||
oqbcrcje
|
|
||||||
jjpcwqae
|
|
||||||
zlyibfto
|
|
||||||
nkkarjbd
|
|
||||||
rrsrbrlr
|
|
||||||
gllxvuve
|
|
||||||
pkanrgds
|
|
||||||
bylfpxdm
|
|
||||||
tzkvedot
|
|
||||||
eidxawif
|
|
||||||
nwvcofjz
|
|
||||||
xkfverdu
|
|
||||||
wgncgvvy
|
|
||||||
epwrztow
|
|
||||||
mybcqyza
|
|
||||||
arxfmrfd
|
|
||||||
utcbwrta
|
|
||||||
iwdfihgp
|
|
||||||
tkskahas
|
|
||||||
vvkmupxb
|
|
||||||
ffetjcgu
|
|
||||||
nmaoaihp
|
|
||||||
wilheaug
|
|
||||||
pmshnqgg
|
|
||||||
pzbjnbtw
|
|
||||||
zlxbrzhz
|
|
||||||
xwikirug
|
|
||||||
rprmighu
|
|
||||||
xaaaioxr
|
|
||||||
mqxpjfgw
|
|
||||||
ejhezvgh
|
|
||||||
brjmtonm
|
|
||||||
wskkweze
|
|
||||||
kkaxuuib
|
|
||||||
mdrbckzy
|
|
||||||
idpwlzfg
|
|
||||||
fqfdktuq
|
|
||||||
jnurlaba
|
|
||||||
bbgftoqt
|
|
||||||
sgiuadsr
|
|
||||||
pwzcfnir
|
|
||||||
mytlszbv
|
|
||||||
uxcwljqs
|
|
||||||
lyrangoq
|
|
||||||
lnmbpgej
|
|
||||||
qjjugsps
|
|
||||||
kptbbita
|
|
||||||
sppvfzzw
|
|
||||||
ghkleimh
|
|
||||||
aupnupvy
|
|
||||||
tzxtqzev
|
|
||||||
dbcyghnu
|
|
||||||
qaygxqjo
|
|
||||||
vgscfmwb
|
|
||||||
raoylhwp
|
|
||||||
gewyhjjh
|
|
||||||
bsozmyma
|
|
||||||
skpkdxcx
|
|
||||||
qcngjsxk
|
|
||||||
xlznquqa
|
|
||||||
tztogrtf
|
|
||||||
bvnovdaf
|
|
||||||
crlrvjsq
|
|
||||||
afbpxgwl
|
|
||||||
gwbeomez
|
|
||||||
aezkolyv
|
|
||||||
cooulafb
|
|
||||||
dnrsyvda
|
|
||||||
ljudufiz
|
|
||||||
ctwxlryc
|
|
||||||
djmebdhh
|
|
||||||
ktoaoxmd
|
|
||||||
afqaqbbj
|
|
||||||
mobvjjyk
|
|
||||||
yplopnti
|
|
||||||
kwkqjzol
|
|
||||||
fcvncctm
|
|
||||||
pkbzlejz
|
|
||||||
axxxbdqj
|
|
||||||
gnjurhkl
|
|
||||||
qakjwsvw
|
|
||||||
vkoagapm
|
|
||||||
tpeyuvqi
|
|
||||||
omejmbtw
|
|
||||||
yhitogvj
|
|
||||||
ybpwtcvb
|
|
||||||
xtnuyfyh
|
|
||||||
isvpwgza
|
|
||||||
ozdntafh
|
|
||||||
hysgmgvh
|
|
||||||
zbgkvytj
|
|
||||||
fntphlnd
|
|
||||||
xjyujmbw
|
|
||||||
uvnhgphl
|
|
||||||
decpnkwq
|
|
||||||
kmkepzcp
|
|
||||||
lwegdttv
|
|
||||||
epkpsehc
|
|
||||||
uouovxth
|
|
||||||
agvppzan
|
|
||||||
zxllwuvw
|
|
||||||
ektemcjl
|
|
||||||
zegwoyif
|
|
||||||
hqhrdyzq
|
|
||||||
qiyxumhk
|
|
||||||
trbebaka
|
|
||||||
etjxsihf
|
|
||||||
yxjgfvnf
|
|
||||||
joywcwmz
|
|
||||||
teeqmoik
|
|
||||||
qjknvrmq
|
|
||||||
avpxxuni
|
|
||||||
naemzbma
|
|
||||||
jpbxexkk
|
|
||||||
ifevcqzn
|
|
||||||
tcnibepd
|
|
||||||
yzppffml
|
|
||||||
xhqgnbqc
|
|
||||||
lvvopbzw
|
|
||||||
pnzmeuon
|
|
||||||
ovzzvvsh
|
|
||||||
mcqmuqjp
|
|
||||||
oadvyhfk
|
|
||||||
tkgnxpyy
|
|
||||||
mvbisygc
|
|
||||||
occsftic
|
|
||||||
fawfwbvy
|
|
||||||
hqmqpuam
|
|
||||||
ptjxkjtk
|
|
||||||
hzxuosye
|
|
||||||
zingpdhg
|
|
||||||
jiombirp
|
|
||||||
vjtvrses
|
|
||||||
fdlzglxq
|
|
||||||
ggooqynz
|
|
||||||
fmwotljx
|
|
||||||
mnzzmfro
|
|
||||||
vtvjvcqu
|
|
||||||
kmpiufet
|
|
||||||
hwsvlelq
|
|
||||||
wdenjddo
|
|
||||||
gfqtffby
|
|
||||||
cxneiwee
|
|
||||||
wtribxye
|
|
||||||
gvuszzzu
|
|
||||||
pugjyrqp
|
|
||||||
yewglqml
|
|
||||||
beqgcrqn
|
|
||||||
azmucset
|
|
||||||
kicbbxtu
|
|
||||||
bmihylgt
|
|
||||||
edjrinqf
|
|
||||||
vvdretyn
|
|
||||||
zkakzfkp
|
|
||||||
qbraqzwo
|
|
||||||
ujpgjzdc
|
|
||||||
hdobaxgr
|
|
||||||
atghhhaw
|
|
||||||
ouucgcws
|
|
||||||
iodycvik
|
|
||||||
ljjdonpe
|
|
||||||
nnekdlaz
|
|
||||||
lbrzjrkn
|
|
||||||
jjwewnji
|
|
||||||
tfdkekdf
|
|
||||||
eidbjaiz
|
|
||||||
hssryuot
|
|
||||||
oajvmyuj
|
|
||||||
fziqlofo
|
|
||||||
uisyryfh
|
|
||||||
ssucyqxa
|
|
||||||
wyvmbyuq
|
|
||||||
fomhuool
|
|
||||||
scyogldx
|
|
||||||
uznjymzz
|
|
||||||
tnmfndhu
|
|
||||||
wmaiqhjd
|
|
||||||
jrtvsvys
|
|
||||||
zpgdzcdw
|
|
||||||
rpzjgslv
|
|
||||||
uulfdwba
|
|
||||||
gfctmdso
|
|
||||||
jcqqmnxe
|
|
||||||
hbzxgupz
|
|
||||||
zbhofhjo
|
|
||||||
szmkzygs
|
|
||||||
ydsnzkwe
|
|
||||||
djbctccs
|
|
||||||
utqjhlzr
|
|
||||||
dslwhsra
|
|
||||||
ujxkxald
|
|
||||||
panonqfl
|
|
||||||
brhfqycu
|
|
||||||
adewetuw
|
|
||||||
rzsxqpyd
|
|
||||||
ypfaxikk
|
|
||||||
vgoncwxp
|
|
||||||
kqcrmyil
|
|
||||||
vwsswwlt
|
|
||||||
bjxktjpi
|
|
||||||
lyzyaehh
|
|
||||||
noccjwkt
|
|
||||||
volhauxw
|
|
||||||
zeeaczxk
|
|
||||||
cgiyzqtg
|
|
||||||
wrflucju
|
|
||||||
mupwfuwq
|
|
||||||
tlgvwoqm
|
|
||||||
laybkcqh
|
|
||||||
mawgcbyq
|
|
||||||
ofuaudem
|
|
||||||
gtkhbeuu
|
|
||||||
svrzwaxw
|
|
||||||
ohqiojux
|
|
||||||
mnmttbve
|
|
||||||
jlluhifp
|
|
||||||
zuhdfnaq
|
|
||||||
hsedbspi
|
|
||||||
rkqoshpx
|
|
||||||
qzvdlvuc
|
|
||||||
rwbglsly
|
|
||||||
djpwgibn
|
|
||||||
edzgvmws
|
|
||||||
teacriww
|
|
||||||
gcvzijna
|
|
||||||
llokdnqu
|
|
||||||
dkywadmh
|
|
||||||
madxishe
|
|
||||||
feharxjj
|
|
||||||
sqzpbcgu
|
|
||||||
ohmflgzd
|
|
||||||
qrrsyggg
|
|
||||||
sxxrafvs
|
|
||||||
xnaterpk
|
|
||||||
tdiytzmh
|
|
||||||
wecsvxnm
|
|
||||||
uiksxtzm
|
|
||||||
ypqpajdd
|
|
||||||
fyaoughg
|
|
||||||
epvdtbni
|
|
||||||
pyynubyw
|
|
||||||
dpjdgbaf
|
|
||||||
vlomtyym
|
|
||||||
zpitxkwr
|
|
||||||
tzclhsoz
|
|
||||||
wduicuqg
|
|
||||||
sltpfxwo
|
|
||||||
iyrmivtk
|
|
||||||
hdmfndbx
|
|
||||||
znqwrzrs
|
|
||||||
fxktgznx
|
|
||||||
indnyerl
|
|
||||||
airalvum
|
|
||||||
jfsfyysy
|
|
||||||
svztyezl
|
|
||||||
qsjpktkb
|
|
||||||
xfujksji
|
|
||||||
jkymepzm
|
|
||||||
lrtlztdg
|
|
||||||
nluspned
|
|
||||||
huwocmgk
|
|
||||||
nygyugbk
|
|
||||||
ryzsjezz
|
|
||||||
uxwwczou
|
|
||||||
awrcdzad
|
|
||||||
tobynxxz
|
|
||||||
swicrqsv
|
|
||||||
jqywnfns
|
|
||||||
kdzvcwmh
|
|
||||||
gogmydcr
|
|
||||||
dkcuvthh
|
|
||||||
hkmraojf
|
|
||||||
kcgbpskp
|
|
||||||
qgknjgtt
|
|
||||||
oywbqczg
|
|
||||||
oiqpwmcv
|
|
||||||
fxjrhvce
|
|
||||||
laaizayr
|
|
||||||
xfcldeuu
|
|
||||||
govaqtom
|
|
||||||
dbcymhvq
|
|
||||||
yjzeuyxc
|
|
||||||
sejtfvqn
|
|
||||||
pbvavgov
|
|
||||||
tpitipok
|
|
||||||
lnfxhraz
|
|
||||||
whbqsgli
|
|
||||||
beuhoifp
|
|
||||||
pojyvmuz
|
|
||||||
yynnekkn
|
|
||||||
nxggwods
|
|
||||||
nkhpvkct
|
|
||||||
rcxwiluq
|
|
||||||
gnhsygno
|
|
||||||
nwwgewiu
|
|
||||||
kcbqnvcb
|
|
||||||
jiisqtqt
|
|
||||||
dochmmei
|
|
||||||
cwmwfrwl
|
|
||||||
hcautqpg
|
|
||||||
oihxktet
|
|
||||||
yrcekmmv
|
|
||||||
lxoyyqxp
|
|
||||||
vlbvilra
|
|
||||||
uqnsdjdf
|
|
||||||
jadyopgr
|
|
||||||
iwunbaps
|
|
||||||
wrplbwpj
|
|
||||||
shfuglla
|
|
||||||
knhgmlsg
|
|
||||||
riknnrmg
|
|
||||||
hoxzmvsr
|
|
||||||
qvqdqxrv
|
|
||||||
lyyvpffj
|
|
||||||
ghhflirv
|
|
||||||
khmzdart
|
|
||||||
qixervoz
|
|
||||||
fdgemrrn
|
|
||||||
uvnbxxpz
|
|
||||||
lqvanhjt
|
|
||||||
umorijwr
|
|
||||||
sgogttye
|
|
||||||
jlfgdzoc
|
|
||||||
barxtobf
|
|
||||||
czrzjduo
|
|
||||||
vlgkvnek
|
|
||||||
prknsjfr
|
|
||||||
uleiwboe
|
|
||||||
mxaswrft
|
|
||||||
ihqcepmh
|
|
||||||
awfqxael
|
|
||||||
hqvzrkbw
|
|
||||||
zwvciodj
|
|
||||||
czyrbdhq
|
|
||||||
ixhfswys
|
|
||||||
ndauoxcn
|
|
||||||
lhhwxiry
|
|
||||||
adpagord
|
|
||||||
suuxfdnq
|
|
||||||
nynlzhfj
|
|
||||||
ffmwgpyj
|
|
||||||
idbgnwev
|
|
||||||
wuculiup
|
|
||||||
cymyvkgm
|
|
||||||
fifqbhvs
|
|
||||||
ijxfzmrq
|
|
||||||
hugjbhin
|
|
||||||
aeffbcfp
|
|
||||||
ywxtejmz
|
|
||||||
qpprytsg
|
|
||||||
kcmlmbeo
|
|
||||||
ruomfeex
|
|
||||||
vvtpcfnk
|
|
||||||
zcihodib
|
|
||||||
nnfoffoi
|
|
||||||
rmldwivo
|
|
||||||
ejrzqyln
|
|
||||||
ifnjdpab
|
|
||||||
abiidqmo
|
|
||||||
aglmsjkr
|
|
||||||
xwqghpda
|
|
||||||
gufhhjer
|
|
||||||
ubjzhfgj
|
|
||||||
glhagkrm
|
|
||||||
wiwhahqd
|
|
||||||
lbyhcebg
|
|
||||||
ahhhxupc
|
|
||||||
dulzuzyi
|
|
||||||
xxdqhiod
|
|
||||||
ydkrksxo
|
|
||||||
pgdazjfi
|
|
||||||
ebrjoyrr
|
|
||||||
maejpwkm
|
|
||||||
xekimgsi
|
|
||||||
jvntcosc
|
|
||||||
wrfiyvmb
|
|
||||||
hfgzughl
|
|
||||||
wgbwylwl
|
|
||||||
tpjgkkye
|
|
||||||
wsspddss
|
|
||||||
ctoyeuvv
|
|
||||||
skjcqabz
|
|
||||||
wfutxuew
|
|
||||||
oqymawht
|
|
||||||
xeqmpvcm
|
|
||||||
hrmflsjx
|
|
||||||
rstnycbh
|
|
||||||
aavqqxcc
|
|
||||||
ouawtykt
|
|
||||||
kmxcjxxe
|
|
||||||
heudiqlo
|
|
||||||
srmiwwrw
|
|
||||||
ufavnfdy
|
|
||||||
xfokmkax
|
|
||||||
vnzztetb
|
|
||||||
goevrbmb
|
|
||||||
wfkthpfj
|
|
||||||
ddesetaa
|
|
||||||
vygkqvdn
|
|
||||||
qsyemmqr
|
|
||||||
iqlyiqtx
|
|
||||||
esvuchui
|
|
||||||
pfslklic
|
|
||||||
genqjcpi
|
|
||||||
bumqsxkx
|
|
||||||
msvbjoip
|
|
||||||
lghjsxdw
|
|
||||||
elukpmbf
|
|
||||||
qmipavgm
|
|
||||||
iafoaecd
|
|
||||||
usidajnf
|
|
||||||
vxsymknf
|
|
||||||
oyfjsysv
|
|
||||||
mpwtxlvv
|
|
||||||
kogsobli
|
|
||||||
jmgwktdj
|
|
||||||
rgztrmby
|
|
||||||
dnrcfisj
|
|
||||||
ottnehjl
|
|
||||||
zsqbinds
|
|
||||||
zmufvgrd
|
|
||||||
fcalplxx
|
|
||||||
jcwqwnvm
|
|
||||||
myjowlcd
|
|
||||||
nodixwaa
|
|
||||||
phfnpbve
|
|
||||||
kexcgape
|
|
||||||
ldmlswbk
|
|
||||||
naxeikbg
|
|
||||||
cgmlnbsb
|
|
||||||
vuwbdcnb
|
|
||||||
bwxbhmgy
|
|
||||||
ziadnccv
|
|
||||||
bacypeeq
|
|
||||||
tbluknup
|
|
||||||
btanytry
|
|
||||||
bqddnwwl
|
|
||||||
urieqmyv
|
|
||||||
csrdslqa
|
|
||||||
fsfiyiai
|
|
||||||
ceasodly
|
|
||||||
jetpbhos
|
|
||||||
xcqzgosd
|
|
||||||
ydqiuyzh
|
|
||||||
vxpzumjp
|
|
||||||
ruwlxvle
|
|
||||||
exrrmafx
|
|
||||||
kbfikzdl
|
|
||||||
bhvvzgfn
|
|
||||||
ivckwbga
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def has_abba(input: str) -> bool:
|
|
||||||
for i in range(4, len(input) + 1):
|
|
||||||
a, b, c, d = (input[i - j] for j in range(4, 0, -1))
|
|
||||||
if a == b:
|
|
||||||
continue
|
|
||||||
if a != d:
|
|
||||||
continue
|
|
||||||
if b != c:
|
|
||||||
continue
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def supports_tls(address: str) -> bool:
|
|
||||||
abba_found = False
|
|
||||||
is_hypernet = False
|
|
||||||
i = 0
|
|
||||||
while i < len(address):
|
|
||||||
if is_hypernet:
|
|
||||||
j = address.find("]", i)
|
|
||||||
else:
|
|
||||||
j = address.find("[", i)
|
|
||||||
if j == -1:
|
|
||||||
j = len(address)
|
|
||||||
if has_abba(address[i:j]):
|
|
||||||
if is_hypernet:
|
|
||||||
return False
|
|
||||||
abba_found = True
|
|
||||||
i = j
|
|
||||||
is_hypernet = not is_hypernet
|
|
||||||
return abba_found
|
|
||||||
|
|
||||||
return sum(map(supports_tls, input.splitlines()))
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
2000
2016/d07/ex1/input
2000
2016/d07/ex1/input
File diff suppressed because it is too large
Load diff
|
|
@ -1,52 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
from collections.abc import Iterator
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def iter_aba(input: str) -> Iterator[tuple[str, str]]:
|
|
||||||
for i in range(3, len(input) + 1):
|
|
||||||
a, b, c = (input[i - j] for j in range(3, 0, -1))
|
|
||||||
if a == b:
|
|
||||||
continue
|
|
||||||
if a != c:
|
|
||||||
continue
|
|
||||||
yield a, b
|
|
||||||
|
|
||||||
def split_address(address) -> tuple[list[str], list[str]]:
|
|
||||||
nets: tuple[list[str], list[str]] = [], []
|
|
||||||
i = 0
|
|
||||||
is_hypernet = False
|
|
||||||
while i < len(address):
|
|
||||||
if is_hypernet:
|
|
||||||
j = address.find("]", i)
|
|
||||||
else:
|
|
||||||
j = address.find("[", i)
|
|
||||||
if j == -1:
|
|
||||||
j = len(address)
|
|
||||||
nets[is_hypernet].append(address[i:j])
|
|
||||||
i = j
|
|
||||||
is_hypernet = not is_hypernet
|
|
||||||
return nets
|
|
||||||
|
|
||||||
def supports_ssl(address: str) -> bool:
|
|
||||||
supernets, hypernets = split_address(address)
|
|
||||||
aba_candidates = itertools.chain.from_iterable(map(iter_aba, supernets))
|
|
||||||
for a, b in aba_candidates:
|
|
||||||
bab = b + a + b
|
|
||||||
if any(bab in net for net in hypernets):
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
return sum(map(supports_ssl, input.splitlines()))
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
2000
2016/d07/ex2/input
2000
2016/d07/ex2/input
File diff suppressed because it is too large
Load diff
|
|
@ -1,62 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
class Op(enum.StrEnum):
|
|
||||||
RECT = "rect"
|
|
||||||
ROTATE_ROW = "row"
|
|
||||||
ROTATE_COLUMN = "column"
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse_line(input: str) -> tuple[Op, int, int]:
|
|
||||||
split_input = input.split()
|
|
||||||
if split_input[0] == "rect":
|
|
||||||
x, y = split_input[1].split("x")
|
|
||||||
return Op.RECT, int(x), int(y)
|
|
||||||
op = Op(split_input[1])
|
|
||||||
line_col, _, shift = split_input[-3:]
|
|
||||||
return op, int(line_col[2:]), int(shift)
|
|
||||||
|
|
||||||
def parse(input: str) -> list[tuple[Op, int, int]]:
|
|
||||||
return [parse_line(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def display_message(instructions: list[tuple[Op, int, int]]) -> set[Point]:
|
|
||||||
MAX_X, MAX_Y = 50, 6
|
|
||||||
screen: set[Point] = set()
|
|
||||||
for op, a, b in instructions:
|
|
||||||
match op:
|
|
||||||
case Op.RECT:
|
|
||||||
for x, y in itertools.product(range(a), range(b)):
|
|
||||||
screen.add(Point(x, y))
|
|
||||||
case Op.ROTATE_ROW:
|
|
||||||
pixels = {p for p in screen if p.y == a}
|
|
||||||
screen -= pixels
|
|
||||||
screen.update(Point((x + b) % MAX_X, y) for x, y in pixels)
|
|
||||||
case Op.ROTATE_COLUMN:
|
|
||||||
pixels = {p for p in screen if p.x == a}
|
|
||||||
screen -= pixels
|
|
||||||
screen.update(Point(x, (y + b) % MAX_Y) for x, y in pixels)
|
|
||||||
return screen
|
|
||||||
|
|
||||||
instructions = parse(input)
|
|
||||||
pixels = display_message(instructions)
|
|
||||||
return len(pixels)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,193 +0,0 @@
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 2x1
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 2x1
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 2x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=0 by 10
|
|
||||||
rotate column x=5 by 2
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 9x1
|
|
||||||
rotate row y=2 by 5
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=2 by 5
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate column x=40 by 1
|
|
||||||
rotate column x=27 by 1
|
|
||||||
rotate column x=22 by 1
|
|
||||||
rotate column x=17 by 1
|
|
||||||
rotate column x=12 by 1
|
|
||||||
rotate column x=7 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate row y=2 by 5
|
|
||||||
rotate row y=1 by 3
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x3
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=1 by 7
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rotate column x=3 by 2
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=2 by 5
|
|
||||||
rotate row y=1 by 3
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 1x3
|
|
||||||
rotate column x=45 by 1
|
|
||||||
rotate row y=2 by 7
|
|
||||||
rotate row y=1 by 10
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 2
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=2 by 13
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=3 by 10
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=3 by 8
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=3 by 17
|
|
||||||
rotate row y=2 by 20
|
|
||||||
rotate row y=0 by 15
|
|
||||||
rotate column x=13 by 1
|
|
||||||
rotate column x=12 by 3
|
|
||||||
rotate column x=10 by 1
|
|
||||||
rotate column x=8 by 1
|
|
||||||
rotate column x=7 by 2
|
|
||||||
rotate column x=6 by 1
|
|
||||||
rotate column x=5 by 1
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 2
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 14x1
|
|
||||||
rotate row y=1 by 47
|
|
||||||
rotate column x=9 by 1
|
|
||||||
rotate column x=4 by 1
|
|
||||||
rotate row y=3 by 3
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=1 by 8
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=2 by 2
|
|
||||||
rotate column x=0 by 2
|
|
||||||
rect 3x2
|
|
||||||
rotate row y=3 by 12
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=0 by 10
|
|
||||||
rotate column x=8 by 1
|
|
||||||
rotate column x=7 by 3
|
|
||||||
rotate column x=5 by 1
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=1 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 9x1
|
|
||||||
rotate row y=0 by 20
|
|
||||||
rotate column x=46 by 1
|
|
||||||
rotate row y=4 by 17
|
|
||||||
rotate row y=3 by 10
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=1 by 5
|
|
||||||
rotate column x=8 by 1
|
|
||||||
rotate column x=7 by 1
|
|
||||||
rotate column x=6 by 1
|
|
||||||
rotate column x=5 by 1
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 2
|
|
||||||
rotate column x=1 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 9x1
|
|
||||||
rotate column x=32 by 4
|
|
||||||
rotate row y=4 by 33
|
|
||||||
rotate row y=3 by 5
|
|
||||||
rotate row y=2 by 15
|
|
||||||
rotate row y=0 by 15
|
|
||||||
rotate column x=13 by 1
|
|
||||||
rotate column x=12 by 3
|
|
||||||
rotate column x=10 by 1
|
|
||||||
rotate column x=8 by 1
|
|
||||||
rotate column x=7 by 2
|
|
||||||
rotate column x=6 by 1
|
|
||||||
rotate column x=5 by 1
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=1 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 14x1
|
|
||||||
rotate column x=39 by 3
|
|
||||||
rotate column x=35 by 4
|
|
||||||
rotate column x=20 by 4
|
|
||||||
rotate column x=19 by 3
|
|
||||||
rotate column x=10 by 4
|
|
||||||
rotate column x=9 by 3
|
|
||||||
rotate column x=8 by 3
|
|
||||||
rotate column x=5 by 4
|
|
||||||
rotate column x=4 by 3
|
|
||||||
rotate row y=5 by 5
|
|
||||||
rotate row y=4 by 5
|
|
||||||
rotate row y=3 by 33
|
|
||||||
rotate row y=1 by 30
|
|
||||||
rotate column x=48 by 1
|
|
||||||
rotate column x=47 by 5
|
|
||||||
rotate column x=46 by 5
|
|
||||||
rotate column x=45 by 1
|
|
||||||
rotate column x=43 by 1
|
|
||||||
rotate column x=38 by 3
|
|
||||||
rotate column x=37 by 3
|
|
||||||
rotate column x=36 by 5
|
|
||||||
rotate column x=35 by 1
|
|
||||||
rotate column x=33 by 1
|
|
||||||
rotate column x=32 by 5
|
|
||||||
rotate column x=31 by 5
|
|
||||||
rotate column x=30 by 1
|
|
||||||
rotate column x=23 by 4
|
|
||||||
rotate column x=22 by 3
|
|
||||||
rotate column x=21 by 3
|
|
||||||
rotate column x=20 by 1
|
|
||||||
rotate column x=12 by 2
|
|
||||||
rotate column x=11 by 2
|
|
||||||
rotate column x=3 by 5
|
|
||||||
rotate column x=2 by 5
|
|
||||||
rotate column x=1 by 3
|
|
||||||
rotate column x=0 by 4
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
class Op(enum.StrEnum):
|
|
||||||
RECT = "rect"
|
|
||||||
ROTATE_ROW = "row"
|
|
||||||
ROTATE_COLUMN = "column"
|
|
||||||
|
|
||||||
|
|
||||||
MAX_X, MAX_Y = 50, 6
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def parse_line(input: str) -> tuple[Op, int, int]:
|
|
||||||
split_input = input.split()
|
|
||||||
if split_input[0] == "rect":
|
|
||||||
x, y = split_input[1].split("x")
|
|
||||||
return Op.RECT, int(x), int(y)
|
|
||||||
op = Op(split_input[1])
|
|
||||||
line_col, _, shift = split_input[-3:]
|
|
||||||
return op, int(line_col[2:]), int(shift)
|
|
||||||
|
|
||||||
def parse(input: str) -> list[tuple[Op, int, int]]:
|
|
||||||
return [parse_line(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def display_message(instructions: list[tuple[Op, int, int]]) -> set[Point]:
|
|
||||||
screen: set[Point] = set()
|
|
||||||
for op, a, b in instructions:
|
|
||||||
match op:
|
|
||||||
case Op.RECT:
|
|
||||||
for x, y in itertools.product(range(a), range(b)):
|
|
||||||
screen.add(Point(x, y))
|
|
||||||
case Op.ROTATE_ROW:
|
|
||||||
pixels = {p for p in screen if p.y == a}
|
|
||||||
screen -= pixels
|
|
||||||
screen.update(Point((x + b) % MAX_X, y) for x, y in pixels)
|
|
||||||
case Op.ROTATE_COLUMN:
|
|
||||||
pixels = {p for p in screen if p.x == a}
|
|
||||||
screen -= pixels
|
|
||||||
screen.update(Point(x, (y + b) % MAX_Y) for x, y in pixels)
|
|
||||||
return screen
|
|
||||||
|
|
||||||
def display(pixels: set[Point]) -> str:
|
|
||||||
return "\n".join(
|
|
||||||
"".join("#" if Point(x, y) in pixels else " " for x in range(MAX_X))
|
|
||||||
for y in range(MAX_Y)
|
|
||||||
)
|
|
||||||
|
|
||||||
instructions = parse(input)
|
|
||||||
pixels = display_message(instructions)
|
|
||||||
return display(pixels)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,193 +0,0 @@
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 2x1
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 2x1
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rect 1x1
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 2x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=0 by 10
|
|
||||||
rotate column x=5 by 2
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 9x1
|
|
||||||
rotate row y=2 by 5
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=2 by 5
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate column x=40 by 1
|
|
||||||
rotate column x=27 by 1
|
|
||||||
rotate column x=22 by 1
|
|
||||||
rotate column x=17 by 1
|
|
||||||
rotate column x=12 by 1
|
|
||||||
rotate column x=7 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate row y=2 by 5
|
|
||||||
rotate row y=1 by 3
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rect 1x3
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=1 by 7
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rotate column x=3 by 2
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=2 by 5
|
|
||||||
rotate row y=1 by 3
|
|
||||||
rotate row y=0 by 3
|
|
||||||
rect 1x3
|
|
||||||
rotate column x=45 by 1
|
|
||||||
rotate row y=2 by 7
|
|
||||||
rotate row y=1 by 10
|
|
||||||
rotate row y=0 by 2
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 2
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=2 by 13
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=3 by 10
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=3 by 8
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 4x1
|
|
||||||
rotate row y=3 by 17
|
|
||||||
rotate row y=2 by 20
|
|
||||||
rotate row y=0 by 15
|
|
||||||
rotate column x=13 by 1
|
|
||||||
rotate column x=12 by 3
|
|
||||||
rotate column x=10 by 1
|
|
||||||
rotate column x=8 by 1
|
|
||||||
rotate column x=7 by 2
|
|
||||||
rotate column x=6 by 1
|
|
||||||
rotate column x=5 by 1
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 2
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 14x1
|
|
||||||
rotate row y=1 by 47
|
|
||||||
rotate column x=9 by 1
|
|
||||||
rotate column x=4 by 1
|
|
||||||
rotate row y=3 by 3
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=1 by 8
|
|
||||||
rotate row y=0 by 5
|
|
||||||
rotate column x=2 by 2
|
|
||||||
rotate column x=0 by 2
|
|
||||||
rect 3x2
|
|
||||||
rotate row y=3 by 12
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=0 by 10
|
|
||||||
rotate column x=8 by 1
|
|
||||||
rotate column x=7 by 3
|
|
||||||
rotate column x=5 by 1
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=1 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 9x1
|
|
||||||
rotate row y=0 by 20
|
|
||||||
rotate column x=46 by 1
|
|
||||||
rotate row y=4 by 17
|
|
||||||
rotate row y=3 by 10
|
|
||||||
rotate row y=2 by 10
|
|
||||||
rotate row y=1 by 5
|
|
||||||
rotate column x=8 by 1
|
|
||||||
rotate column x=7 by 1
|
|
||||||
rotate column x=6 by 1
|
|
||||||
rotate column x=5 by 1
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 2
|
|
||||||
rotate column x=1 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 9x1
|
|
||||||
rotate column x=32 by 4
|
|
||||||
rotate row y=4 by 33
|
|
||||||
rotate row y=3 by 5
|
|
||||||
rotate row y=2 by 15
|
|
||||||
rotate row y=0 by 15
|
|
||||||
rotate column x=13 by 1
|
|
||||||
rotate column x=12 by 3
|
|
||||||
rotate column x=10 by 1
|
|
||||||
rotate column x=8 by 1
|
|
||||||
rotate column x=7 by 2
|
|
||||||
rotate column x=6 by 1
|
|
||||||
rotate column x=5 by 1
|
|
||||||
rotate column x=3 by 1
|
|
||||||
rotate column x=2 by 1
|
|
||||||
rotate column x=1 by 1
|
|
||||||
rotate column x=0 by 1
|
|
||||||
rect 14x1
|
|
||||||
rotate column x=39 by 3
|
|
||||||
rotate column x=35 by 4
|
|
||||||
rotate column x=20 by 4
|
|
||||||
rotate column x=19 by 3
|
|
||||||
rotate column x=10 by 4
|
|
||||||
rotate column x=9 by 3
|
|
||||||
rotate column x=8 by 3
|
|
||||||
rotate column x=5 by 4
|
|
||||||
rotate column x=4 by 3
|
|
||||||
rotate row y=5 by 5
|
|
||||||
rotate row y=4 by 5
|
|
||||||
rotate row y=3 by 33
|
|
||||||
rotate row y=1 by 30
|
|
||||||
rotate column x=48 by 1
|
|
||||||
rotate column x=47 by 5
|
|
||||||
rotate column x=46 by 5
|
|
||||||
rotate column x=45 by 1
|
|
||||||
rotate column x=43 by 1
|
|
||||||
rotate column x=38 by 3
|
|
||||||
rotate column x=37 by 3
|
|
||||||
rotate column x=36 by 5
|
|
||||||
rotate column x=35 by 1
|
|
||||||
rotate column x=33 by 1
|
|
||||||
rotate column x=32 by 5
|
|
||||||
rotate column x=31 by 5
|
|
||||||
rotate column x=30 by 1
|
|
||||||
rotate column x=23 by 4
|
|
||||||
rotate column x=22 by 3
|
|
||||||
rotate column x=21 by 3
|
|
||||||
rotate column x=20 by 1
|
|
||||||
rotate column x=12 by 2
|
|
||||||
rotate column x=11 by 2
|
|
||||||
rotate column x=3 by 5
|
|
||||||
rotate column x=2 by 5
|
|
||||||
rotate column x=1 by 3
|
|
||||||
rotate column x=0 by 4
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
from collections.abc import Iterator
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def decompress(input: str) -> str:
|
|
||||||
def helper() -> Iterator[str]:
|
|
||||||
i = 0
|
|
||||||
is_marker = False
|
|
||||||
while i < len(input):
|
|
||||||
if is_marker:
|
|
||||||
j = input.find(")", i)
|
|
||||||
else:
|
|
||||||
j = input.find("(", i)
|
|
||||||
if j == -1:
|
|
||||||
j = len(input)
|
|
||||||
if is_marker:
|
|
||||||
length, repeat = map(int, input[i + 1 : j].split("x"))
|
|
||||||
yield input[j + 1 : j + length + 1] * repeat
|
|
||||||
i = j + length + 1
|
|
||||||
else:
|
|
||||||
yield input[i:j]
|
|
||||||
i = j
|
|
||||||
is_marker = not is_marker
|
|
||||||
|
|
||||||
return "".join(helper())
|
|
||||||
|
|
||||||
decompressed = decompress(input.strip())
|
|
||||||
return sum(not c.isspace() for c in decompressed)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,39 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
from collections.abc import Iterator
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def decompress(input: str) -> int:
|
|
||||||
def helper() -> Iterator[int]:
|
|
||||||
i = 0
|
|
||||||
is_marker = False
|
|
||||||
while i < len(input):
|
|
||||||
if is_marker:
|
|
||||||
j = input.find(")", i)
|
|
||||||
else:
|
|
||||||
j = input.find("(", i)
|
|
||||||
if j == -1:
|
|
||||||
j = len(input)
|
|
||||||
if is_marker:
|
|
||||||
length, repeat = map(int, input[i + 1 : j].split("x"))
|
|
||||||
yield decompress(input[j + 1 : j + length + 1]) * repeat
|
|
||||||
i = j + length + 1
|
|
||||||
else:
|
|
||||||
yield j - i
|
|
||||||
i = j
|
|
||||||
is_marker = not is_marker
|
|
||||||
|
|
||||||
return sum(helper())
|
|
||||||
|
|
||||||
return decompress(input.strip())
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,110 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import dataclasses
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Input:
|
|
||||||
n: int
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Bot:
|
|
||||||
n: int
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Output:
|
|
||||||
n: int
|
|
||||||
|
|
||||||
|
|
||||||
# Each node points to its children, to each of whom it outputs a chip
|
|
||||||
GraphKey = Input | Bot
|
|
||||||
GraphVal = Bot | Output
|
|
||||||
# By convention, a bot should list its outputs in [`low`, `high`] order
|
|
||||||
Graph = dict[GraphKey, list[GraphVal]]
|
|
||||||
# Reverse the graph representation for an easier topo_sort (only of the keys)
|
|
||||||
ReverseGraph = dict[GraphKey, set[GraphKey]]
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse_line(input: str) -> tuple[GraphKey, list[GraphVal]]:
|
|
||||||
split_input = input.split()
|
|
||||||
if split_input[0] == "bot":
|
|
||||||
low_n = int(split_input[6])
|
|
||||||
low_type: type[GraphVal] = Bot if split_input[5] == "bot" else Output
|
|
||||||
high_n = int(split_input[11])
|
|
||||||
high_type: type[GraphVal] = Bot if split_input[10] == "bot" else Output
|
|
||||||
return Bot(int(split_input[1])), [low_type(low_n), high_type(high_n)]
|
|
||||||
return Input(int(split_input[1])), [Bot(int(split_input[-1]))]
|
|
||||||
|
|
||||||
def parse(input: str) -> Graph:
|
|
||||||
return {key: val for key, val in map(parse_line, input.splitlines())}
|
|
||||||
|
|
||||||
def run(graph: Graph) -> int:
|
|
||||||
def reverse_graph(graph: Graph) -> ReverseGraph:
|
|
||||||
res: ReverseGraph = {n: set() for n in graph}
|
|
||||||
for node, children in graph.items():
|
|
||||||
for child in children:
|
|
||||||
# We don't care about `Output`s here
|
|
||||||
if isinstance(child, Output):
|
|
||||||
continue
|
|
||||||
res[child].add(node)
|
|
||||||
return res
|
|
||||||
|
|
||||||
def topo_sort(graph: ReverseGraph) -> list[GraphKey]:
|
|
||||||
res: list[GraphKey] = []
|
|
||||||
|
|
||||||
queue = {n for n, deps in graph.items() if not deps}
|
|
||||||
assert all(isinstance(n, Input) for n in queue) # Sanity check
|
|
||||||
seen: set[GraphKey] = set()
|
|
||||||
|
|
||||||
while queue:
|
|
||||||
node = queue.pop()
|
|
||||||
|
|
||||||
res.append(node)
|
|
||||||
seen.add(node)
|
|
||||||
# Iterate over all nodes as we don't have information on children
|
|
||||||
for child, deps in graph.items():
|
|
||||||
if child in seen:
|
|
||||||
continue
|
|
||||||
if deps - seen:
|
|
||||||
continue
|
|
||||||
queue.add(child)
|
|
||||||
|
|
||||||
return res
|
|
||||||
|
|
||||||
reversed_graph = reverse_graph(graph)
|
|
||||||
assert len(reversed_graph) == len(graph) # Sanity check
|
|
||||||
run_order = topo_sort(reversed_graph)
|
|
||||||
assert len(run_order) == len(graph) # Sanity check
|
|
||||||
CHIPS_OF_INTEREST = {17, 61}
|
|
||||||
bots_bins: dict[GraphVal, list[int]] = collections.defaultdict(list)
|
|
||||||
for node in run_order:
|
|
||||||
match node:
|
|
||||||
case Input(n):
|
|
||||||
assert len(graph[node]) == 1 # Sanity check
|
|
||||||
bots_bins[graph[node][0]].append(n)
|
|
||||||
case Bot(n):
|
|
||||||
assert len(graph[node]) == 2 # Sanity check
|
|
||||||
assert len(bots_bins[node]) == 2 # Sanity check
|
|
||||||
# Have we found the bot we were looking for?
|
|
||||||
if set(bots_bins[node]) == CHIPS_OF_INTEREST:
|
|
||||||
return n
|
|
||||||
for out, val in zip(graph[node], sorted(bots_bins[node])):
|
|
||||||
bots_bins[out].append(val)
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
graph = parse(input)
|
|
||||||
return run(graph)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,231 +0,0 @@
|
||||||
bot 59 gives low to bot 176 and high to bot 120
|
|
||||||
bot 92 gives low to bot 42 and high to bot 187
|
|
||||||
value 31 goes to bot 114
|
|
||||||
bot 182 gives low to bot 49 and high to bot 176
|
|
||||||
bot 17 gives low to bot 181 and high to bot 162
|
|
||||||
bot 36 gives low to bot 118 and high to bot 121
|
|
||||||
bot 118 gives low to bot 164 and high to bot 55
|
|
||||||
bot 172 gives low to bot 79 and high to bot 123
|
|
||||||
bot 51 gives low to bot 60 and high to bot 31
|
|
||||||
bot 48 gives low to bot 107 and high to bot 58
|
|
||||||
bot 142 gives low to output 6 and high to bot 35
|
|
||||||
bot 133 gives low to output 4 and high to bot 47
|
|
||||||
bot 134 gives low to bot 122 and high to bot 66
|
|
||||||
bot 106 gives low to bot 155 and high to bot 99
|
|
||||||
bot 77 gives low to bot 93 and high to bot 84
|
|
||||||
bot 9 gives low to bot 173 and high to bot 197
|
|
||||||
bot 64 gives low to bot 123 and high to bot 48
|
|
||||||
bot 177 gives low to bot 21 and high to bot 132
|
|
||||||
bot 94 gives low to bot 6 and high to bot 25
|
|
||||||
bot 126 gives low to bot 193 and high to bot 56
|
|
||||||
bot 74 gives low to bot 187 and high to bot 125
|
|
||||||
bot 80 gives low to bot 41 and high to bot 191
|
|
||||||
bot 62 gives low to bot 157 and high to bot 138
|
|
||||||
bot 66 gives low to bot 1 and high to bot 209
|
|
||||||
bot 90 gives low to bot 104 and high to bot 34
|
|
||||||
bot 68 gives low to bot 23 and high to bot 87
|
|
||||||
bot 121 gives low to bot 55 and high to bot 126
|
|
||||||
bot 122 gives low to bot 137 and high to bot 1
|
|
||||||
bot 209 gives low to bot 168 and high to bot 26
|
|
||||||
bot 141 gives low to bot 170 and high to bot 6
|
|
||||||
bot 149 gives low to bot 62 and high to bot 13
|
|
||||||
bot 120 gives low to bot 179 and high to bot 71
|
|
||||||
bot 160 gives low to bot 194 and high to bot 151
|
|
||||||
bot 86 gives low to bot 96 and high to bot 106
|
|
||||||
value 13 goes to bot 9
|
|
||||||
bot 180 gives low to bot 189 and high to bot 27
|
|
||||||
value 67 goes to bot 88
|
|
||||||
bot 169 gives low to bot 99 and high to bot 159
|
|
||||||
bot 56 gives low to bot 98 and high to bot 147
|
|
||||||
bot 197 gives low to bot 174 and high to bot 81
|
|
||||||
bot 57 gives low to bot 113 and high to bot 179
|
|
||||||
bot 39 gives low to bot 115 and high to bot 3
|
|
||||||
bot 79 gives low to bot 22 and high to bot 40
|
|
||||||
bot 161 gives low to output 14 and high to bot 185
|
|
||||||
bot 21 gives low to bot 114 and high to bot 119
|
|
||||||
bot 136 gives low to bot 28 and high to bot 158
|
|
||||||
bot 105 gives low to bot 89 and high to bot 19
|
|
||||||
bot 168 gives low to bot 126 and high to bot 26
|
|
||||||
bot 193 gives low to bot 64 and high to bot 98
|
|
||||||
bot 186 gives low to bot 86 and high to bot 178
|
|
||||||
value 11 goes to bot 165
|
|
||||||
bot 33 gives low to bot 116 and high to bot 150
|
|
||||||
bot 32 gives low to bot 154 and high to bot 206
|
|
||||||
bot 166 gives low to bot 33 and high to bot 139
|
|
||||||
value 7 goes to bot 63
|
|
||||||
bot 203 gives low to bot 172 and high to bot 64
|
|
||||||
bot 200 gives low to bot 94 and high to bot 25
|
|
||||||
value 43 goes to bot 76
|
|
||||||
bot 145 gives low to bot 103 and high to bot 128
|
|
||||||
bot 119 gives low to bot 186 and high to bot 97
|
|
||||||
bot 12 gives low to bot 31 and high to bot 4
|
|
||||||
bot 23 gives low to bot 198 and high to bot 171
|
|
||||||
bot 34 gives low to bot 10 and high to bot 20
|
|
||||||
bot 198 gives low to bot 43 and high to bot 17
|
|
||||||
bot 50 gives low to output 1 and high to bot 127
|
|
||||||
bot 155 gives low to bot 191 and high to bot 32
|
|
||||||
bot 206 gives low to bot 12 and high to bot 43
|
|
||||||
bot 96 gives low to bot 80 and high to bot 155
|
|
||||||
bot 93 gives low to bot 44 and high to bot 70
|
|
||||||
bot 24 gives low to bot 85 and high to bot 83
|
|
||||||
bot 30 gives low to bot 159 and high to bot 68
|
|
||||||
bot 55 gives low to bot 203 and high to bot 193
|
|
||||||
bot 199 gives low to bot 68 and high to bot 135
|
|
||||||
bot 170 gives low to bot 97 and high to bot 5
|
|
||||||
bot 65 gives low to bot 152 and high to bot 194
|
|
||||||
bot 43 gives low to bot 4 and high to bot 181
|
|
||||||
bot 113 gives low to output 9 and high to bot 161
|
|
||||||
bot 81 gives low to bot 141 and high to bot 94
|
|
||||||
value 29 goes to bot 7
|
|
||||||
bot 46 gives low to bot 175 and high to bot 195
|
|
||||||
value 47 goes to bot 21
|
|
||||||
value 23 goes to bot 42
|
|
||||||
bot 13 gives low to bot 138 and high to bot 61
|
|
||||||
bot 135 gives low to bot 87 and high to bot 111
|
|
||||||
bot 194 gives low to bot 190 and high to bot 82
|
|
||||||
value 73 goes to bot 109
|
|
||||||
bot 154 gives low to bot 51 and high to bot 12
|
|
||||||
bot 1 gives low to bot 18 and high to bot 209
|
|
||||||
bot 98 gives low to bot 48 and high to bot 45
|
|
||||||
bot 147 gives low to bot 45 and high to bot 95
|
|
||||||
bot 47 gives low to output 19 and high to bot 152
|
|
||||||
bot 26 gives low to bot 56 and high to bot 147
|
|
||||||
bot 179 gives low to bot 161 and high to bot 71
|
|
||||||
bot 148 gives low to bot 204 and high to bot 137
|
|
||||||
bot 5 gives low to bot 67 and high to bot 85
|
|
||||||
bot 174 gives low to bot 132 and high to bot 141
|
|
||||||
bot 8 gives low to bot 13 and high to bot 75
|
|
||||||
bot 82 gives low to bot 146 and high to bot 22
|
|
||||||
bot 123 gives low to bot 40 and high to bot 107
|
|
||||||
bot 99 gives low to bot 32 and high to bot 201
|
|
||||||
bot 41 gives low to bot 196 and high to bot 192
|
|
||||||
bot 139 gives low to bot 150 and high to bot 153
|
|
||||||
bot 11 gives low to output 16 and high to bot 113
|
|
||||||
bot 72 gives low to bot 65 and high to bot 160
|
|
||||||
bot 195 gives low to bot 133 and high to bot 183
|
|
||||||
bot 54 gives low to output 12 and high to output 10
|
|
||||||
bot 158 gives low to bot 102 and high to bot 110
|
|
||||||
bot 112 gives low to bot 19 and high to bot 118
|
|
||||||
bot 31 gives low to bot 208 and high to bot 143
|
|
||||||
bot 167 gives low to bot 7 and high to bot 96
|
|
||||||
bot 63 gives low to bot 92 and high to bot 74
|
|
||||||
bot 116 gives low to bot 20 and high to bot 131
|
|
||||||
bot 184 gives low to bot 39 and high to bot 3
|
|
||||||
bot 162 gives low to bot 205 and high to bot 39
|
|
||||||
bot 108 gives low to output 11 and high to bot 175
|
|
||||||
value 53 goes to bot 207
|
|
||||||
bot 111 gives low to bot 202 and high to bot 184
|
|
||||||
bot 25 gives low to bot 24 and high to bot 83
|
|
||||||
value 71 goes to bot 77
|
|
||||||
bot 69 gives low to bot 142 and high to bot 0
|
|
||||||
bot 146 gives low to output 13 and high to bot 53
|
|
||||||
bot 7 gives low to bot 76 and high to bot 80
|
|
||||||
bot 131 gives low to bot 73 and high to bot 204
|
|
||||||
bot 102 gives low to bot 195 and high to bot 117
|
|
||||||
bot 76 gives low to bot 165 and high to bot 41
|
|
||||||
bot 153 gives low to bot 148 and high to bot 122
|
|
||||||
bot 208 gives low to bot 90 and high to bot 163
|
|
||||||
bot 70 gives low to bot 144 and high to bot 78
|
|
||||||
bot 125 gives low to bot 8 and high to bot 156
|
|
||||||
bot 83 gives low to bot 199 and high to bot 135
|
|
||||||
bot 75 gives low to bot 61 and high to bot 104
|
|
||||||
bot 67 gives low to bot 169 and high to bot 30
|
|
||||||
bot 14 gives low to bot 81 and high to bot 200
|
|
||||||
bot 159 gives low to bot 201 and high to bot 23
|
|
||||||
value 3 goes to bot 93
|
|
||||||
bot 110 gives low to bot 117 and high to bot 89
|
|
||||||
bot 128 gives low to bot 129 and high to bot 182
|
|
||||||
bot 87 gives low to bot 171 and high to bot 111
|
|
||||||
bot 45 gives low to bot 58 and high to bot 95
|
|
||||||
bot 4 gives low to bot 143 and high to bot 166
|
|
||||||
bot 60 gives low to bot 156 and high to bot 208
|
|
||||||
bot 27 gives low to bot 108 and high to bot 46
|
|
||||||
bot 42 gives low to bot 207 and high to bot 149
|
|
||||||
bot 117 gives low to bot 183 and high to bot 72
|
|
||||||
bot 115 gives low to bot 153 and high to bot 134
|
|
||||||
bot 140 gives low to bot 125 and high to bot 60
|
|
||||||
bot 173 gives low to bot 177 and high to bot 174
|
|
||||||
bot 138 gives low to bot 180 and high to bot 52
|
|
||||||
bot 100 gives low to bot 38 and high to bot 59
|
|
||||||
value 41 goes to bot 173
|
|
||||||
value 59 goes to bot 177
|
|
||||||
bot 165 gives low to bot 63 and high to bot 196
|
|
||||||
bot 84 gives low to bot 70 and high to bot 78
|
|
||||||
bot 2 gives low to bot 160 and high to bot 91
|
|
||||||
value 61 goes to bot 29
|
|
||||||
bot 114 gives low to bot 109 and high to bot 186
|
|
||||||
bot 205 gives low to bot 139 and high to bot 115
|
|
||||||
bot 175 gives low to output 17 and high to bot 133
|
|
||||||
bot 176 gives low to bot 57 and high to bot 120
|
|
||||||
bot 107 gives low to bot 124 and high to bot 15
|
|
||||||
bot 52 gives low to bot 27 and high to bot 28
|
|
||||||
bot 103 gives low to bot 50 and high to bot 129
|
|
||||||
bot 150 gives low to bot 131 and high to bot 148
|
|
||||||
bot 16 gives low to output 20 and high to bot 189
|
|
||||||
bot 190 gives low to output 18 and high to bot 146
|
|
||||||
bot 157 gives low to bot 16 and high to bot 180
|
|
||||||
bot 10 gives low to bot 158 and high to bot 130
|
|
||||||
bot 202 gives low to bot 162 and high to bot 184
|
|
||||||
bot 88 gives low to bot 77 and high to bot 84
|
|
||||||
bot 188 gives low to bot 128 and high to bot 38
|
|
||||||
bot 58 gives low to bot 15 and high to bot 101
|
|
||||||
bot 171 gives low to bot 17 and high to bot 202
|
|
||||||
bot 97 gives low to bot 178 and high to bot 67
|
|
||||||
bot 163 gives low to bot 34 and high to bot 116
|
|
||||||
bot 124 gives low to bot 0 and high to bot 145
|
|
||||||
bot 71 gives low to bot 185 and high to bot 54
|
|
||||||
bot 78 gives low to bot 14 and high to bot 200
|
|
||||||
bot 101 gives low to bot 188 and high to bot 100
|
|
||||||
bot 189 gives low to output 7 and high to bot 108
|
|
||||||
bot 95 gives low to bot 101 and high to bot 100
|
|
||||||
bot 0 gives low to bot 35 and high to bot 103
|
|
||||||
bot 207 gives low to bot 37 and high to bot 62
|
|
||||||
bot 49 gives low to bot 11 and high to bot 57
|
|
||||||
bot 85 gives low to bot 30 and high to bot 199
|
|
||||||
bot 89 gives low to bot 72 and high to bot 2
|
|
||||||
bot 3 gives low to bot 134 and high to bot 66
|
|
||||||
bot 181 gives low to bot 166 and high to bot 205
|
|
||||||
bot 91 gives low to bot 151 and high to bot 172
|
|
||||||
value 17 goes to bot 167
|
|
||||||
bot 20 gives low to bot 130 and high to bot 73
|
|
||||||
bot 196 gives low to bot 74 and high to bot 140
|
|
||||||
bot 18 gives low to bot 121 and high to bot 168
|
|
||||||
bot 185 gives low to output 15 and high to bot 54
|
|
||||||
bot 178 gives low to bot 106 and high to bot 169
|
|
||||||
bot 129 gives low to bot 127 and high to bot 49
|
|
||||||
bot 19 gives low to bot 2 and high to bot 164
|
|
||||||
bot 15 gives low to bot 145 and high to bot 188
|
|
||||||
bot 144 gives low to bot 197 and high to bot 14
|
|
||||||
bot 201 gives low to bot 206 and high to bot 198
|
|
||||||
bot 164 gives low to bot 91 and high to bot 203
|
|
||||||
bot 73 gives low to bot 105 and high to bot 112
|
|
||||||
bot 191 gives low to bot 192 and high to bot 154
|
|
||||||
bot 109 gives low to bot 167 and high to bot 86
|
|
||||||
bot 151 gives low to bot 82 and high to bot 79
|
|
||||||
bot 53 gives low to output 2 and high to bot 142
|
|
||||||
bot 37 gives low to bot 29 and high to bot 157
|
|
||||||
value 2 goes to bot 44
|
|
||||||
bot 204 gives low to bot 112 and high to bot 36
|
|
||||||
bot 40 gives low to bot 69 and high to bot 124
|
|
||||||
bot 22 gives low to bot 53 and high to bot 69
|
|
||||||
bot 104 gives low to bot 136 and high to bot 10
|
|
||||||
value 19 goes to bot 88
|
|
||||||
bot 127 gives low to output 5 and high to bot 11
|
|
||||||
bot 183 gives low to bot 47 and high to bot 65
|
|
||||||
bot 192 gives low to bot 140 and high to bot 51
|
|
||||||
bot 38 gives low to bot 182 and high to bot 59
|
|
||||||
bot 61 gives low to bot 52 and high to bot 136
|
|
||||||
bot 156 gives low to bot 75 and high to bot 90
|
|
||||||
value 37 goes to bot 37
|
|
||||||
bot 28 gives low to bot 46 and high to bot 102
|
|
||||||
bot 187 gives low to bot 149 and high to bot 8
|
|
||||||
bot 132 gives low to bot 119 and high to bot 170
|
|
||||||
bot 44 gives low to bot 9 and high to bot 144
|
|
||||||
bot 29 gives low to output 0 and high to bot 16
|
|
||||||
bot 6 gives low to bot 5 and high to bot 24
|
|
||||||
bot 137 gives low to bot 36 and high to bot 18
|
|
||||||
bot 130 gives low to bot 110 and high to bot 105
|
|
||||||
value 5 goes to bot 92
|
|
||||||
bot 35 gives low to output 3 and high to bot 50
|
|
||||||
bot 152 gives low to output 8 and high to bot 190
|
|
||||||
bot 143 gives low to bot 163 and high to bot 33
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import dataclasses
|
|
||||||
import functools
|
|
||||||
import itertools
|
|
||||||
import operator
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Input:
|
|
||||||
n: int
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Bot:
|
|
||||||
n: int
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Output:
|
|
||||||
n: int
|
|
||||||
|
|
||||||
|
|
||||||
# Each node points to its children, to each of whom it outputs a chip
|
|
||||||
GraphKey = Input | Bot
|
|
||||||
GraphVal = Bot | Output
|
|
||||||
# By convention, a bot should list its outputs in [`low`, `high`] order
|
|
||||||
Graph = dict[GraphKey, list[GraphVal]]
|
|
||||||
# Reverse the graph representation for an easier topo_sort (only of the keys)
|
|
||||||
ReverseGraph = dict[GraphKey, set[GraphKey]]
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse_line(input: str) -> tuple[GraphKey, list[GraphVal]]:
|
|
||||||
split_input = input.split()
|
|
||||||
if split_input[0] == "bot":
|
|
||||||
low_n = int(split_input[6])
|
|
||||||
low_type: type[GraphVal] = Bot if split_input[5] == "bot" else Output
|
|
||||||
high_n = int(split_input[11])
|
|
||||||
high_type: type[GraphVal] = Bot if split_input[10] == "bot" else Output
|
|
||||||
return Bot(int(split_input[1])), [low_type(low_n), high_type(high_n)]
|
|
||||||
return Input(int(split_input[1])), [Bot(int(split_input[-1]))]
|
|
||||||
|
|
||||||
def parse(input: str) -> Graph:
|
|
||||||
return {key: val for key, val in map(parse_line, input.splitlines())}
|
|
||||||
|
|
||||||
def run(graph: Graph) -> dict[GraphVal, list[int]]:
|
|
||||||
def reverse_graph(graph: Graph) -> ReverseGraph:
|
|
||||||
res: ReverseGraph = {n: set() for n in graph}
|
|
||||||
for node, children in graph.items():
|
|
||||||
for child in children:
|
|
||||||
# We don't care about `Output`s here
|
|
||||||
if isinstance(child, Output):
|
|
||||||
continue
|
|
||||||
res[child].add(node)
|
|
||||||
return res
|
|
||||||
|
|
||||||
def topo_sort(graph: ReverseGraph) -> list[GraphKey]:
|
|
||||||
res: list[GraphKey] = []
|
|
||||||
|
|
||||||
queue = {n for n, deps in graph.items() if not deps}
|
|
||||||
assert all(isinstance(n, Input) for n in queue) # Sanity check
|
|
||||||
seen: set[GraphKey] = set()
|
|
||||||
|
|
||||||
while queue:
|
|
||||||
node = queue.pop()
|
|
||||||
|
|
||||||
res.append(node)
|
|
||||||
seen.add(node)
|
|
||||||
# Iterate over all nodes as we don't have information on children
|
|
||||||
for child, deps in graph.items():
|
|
||||||
if child in seen:
|
|
||||||
continue
|
|
||||||
if deps - seen:
|
|
||||||
continue
|
|
||||||
queue.add(child)
|
|
||||||
|
|
||||||
return res
|
|
||||||
|
|
||||||
reversed_graph = reverse_graph(graph)
|
|
||||||
assert len(reversed_graph) == len(graph) # Sanity check
|
|
||||||
run_order = topo_sort(reversed_graph)
|
|
||||||
assert len(run_order) == len(graph) # Sanity check
|
|
||||||
bots_bins: dict[GraphVal, list[int]] = collections.defaultdict(list)
|
|
||||||
for node in run_order:
|
|
||||||
match node:
|
|
||||||
case Input(n):
|
|
||||||
assert len(graph[node]) == 1 # Sanity check
|
|
||||||
bots_bins[graph[node][0]].append(n)
|
|
||||||
case Bot(n):
|
|
||||||
assert len(graph[node]) == 2 # Sanity check
|
|
||||||
assert len(bots_bins[node]) == 2 # Sanity check
|
|
||||||
# Have we found the bot we were looking for?
|
|
||||||
for out, val in zip(graph[node], sorted(bots_bins[node])):
|
|
||||||
bots_bins[out].append(val)
|
|
||||||
return bots_bins
|
|
||||||
|
|
||||||
graph = parse(input)
|
|
||||||
outputs = run(graph)
|
|
||||||
return functools.reduce(
|
|
||||||
operator.mul,
|
|
||||||
itertools.chain.from_iterable(outputs[Output(i)] for i in range(3)),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,231 +0,0 @@
|
||||||
bot 59 gives low to bot 176 and high to bot 120
|
|
||||||
bot 92 gives low to bot 42 and high to bot 187
|
|
||||||
value 31 goes to bot 114
|
|
||||||
bot 182 gives low to bot 49 and high to bot 176
|
|
||||||
bot 17 gives low to bot 181 and high to bot 162
|
|
||||||
bot 36 gives low to bot 118 and high to bot 121
|
|
||||||
bot 118 gives low to bot 164 and high to bot 55
|
|
||||||
bot 172 gives low to bot 79 and high to bot 123
|
|
||||||
bot 51 gives low to bot 60 and high to bot 31
|
|
||||||
bot 48 gives low to bot 107 and high to bot 58
|
|
||||||
bot 142 gives low to output 6 and high to bot 35
|
|
||||||
bot 133 gives low to output 4 and high to bot 47
|
|
||||||
bot 134 gives low to bot 122 and high to bot 66
|
|
||||||
bot 106 gives low to bot 155 and high to bot 99
|
|
||||||
bot 77 gives low to bot 93 and high to bot 84
|
|
||||||
bot 9 gives low to bot 173 and high to bot 197
|
|
||||||
bot 64 gives low to bot 123 and high to bot 48
|
|
||||||
bot 177 gives low to bot 21 and high to bot 132
|
|
||||||
bot 94 gives low to bot 6 and high to bot 25
|
|
||||||
bot 126 gives low to bot 193 and high to bot 56
|
|
||||||
bot 74 gives low to bot 187 and high to bot 125
|
|
||||||
bot 80 gives low to bot 41 and high to bot 191
|
|
||||||
bot 62 gives low to bot 157 and high to bot 138
|
|
||||||
bot 66 gives low to bot 1 and high to bot 209
|
|
||||||
bot 90 gives low to bot 104 and high to bot 34
|
|
||||||
bot 68 gives low to bot 23 and high to bot 87
|
|
||||||
bot 121 gives low to bot 55 and high to bot 126
|
|
||||||
bot 122 gives low to bot 137 and high to bot 1
|
|
||||||
bot 209 gives low to bot 168 and high to bot 26
|
|
||||||
bot 141 gives low to bot 170 and high to bot 6
|
|
||||||
bot 149 gives low to bot 62 and high to bot 13
|
|
||||||
bot 120 gives low to bot 179 and high to bot 71
|
|
||||||
bot 160 gives low to bot 194 and high to bot 151
|
|
||||||
bot 86 gives low to bot 96 and high to bot 106
|
|
||||||
value 13 goes to bot 9
|
|
||||||
bot 180 gives low to bot 189 and high to bot 27
|
|
||||||
value 67 goes to bot 88
|
|
||||||
bot 169 gives low to bot 99 and high to bot 159
|
|
||||||
bot 56 gives low to bot 98 and high to bot 147
|
|
||||||
bot 197 gives low to bot 174 and high to bot 81
|
|
||||||
bot 57 gives low to bot 113 and high to bot 179
|
|
||||||
bot 39 gives low to bot 115 and high to bot 3
|
|
||||||
bot 79 gives low to bot 22 and high to bot 40
|
|
||||||
bot 161 gives low to output 14 and high to bot 185
|
|
||||||
bot 21 gives low to bot 114 and high to bot 119
|
|
||||||
bot 136 gives low to bot 28 and high to bot 158
|
|
||||||
bot 105 gives low to bot 89 and high to bot 19
|
|
||||||
bot 168 gives low to bot 126 and high to bot 26
|
|
||||||
bot 193 gives low to bot 64 and high to bot 98
|
|
||||||
bot 186 gives low to bot 86 and high to bot 178
|
|
||||||
value 11 goes to bot 165
|
|
||||||
bot 33 gives low to bot 116 and high to bot 150
|
|
||||||
bot 32 gives low to bot 154 and high to bot 206
|
|
||||||
bot 166 gives low to bot 33 and high to bot 139
|
|
||||||
value 7 goes to bot 63
|
|
||||||
bot 203 gives low to bot 172 and high to bot 64
|
|
||||||
bot 200 gives low to bot 94 and high to bot 25
|
|
||||||
value 43 goes to bot 76
|
|
||||||
bot 145 gives low to bot 103 and high to bot 128
|
|
||||||
bot 119 gives low to bot 186 and high to bot 97
|
|
||||||
bot 12 gives low to bot 31 and high to bot 4
|
|
||||||
bot 23 gives low to bot 198 and high to bot 171
|
|
||||||
bot 34 gives low to bot 10 and high to bot 20
|
|
||||||
bot 198 gives low to bot 43 and high to bot 17
|
|
||||||
bot 50 gives low to output 1 and high to bot 127
|
|
||||||
bot 155 gives low to bot 191 and high to bot 32
|
|
||||||
bot 206 gives low to bot 12 and high to bot 43
|
|
||||||
bot 96 gives low to bot 80 and high to bot 155
|
|
||||||
bot 93 gives low to bot 44 and high to bot 70
|
|
||||||
bot 24 gives low to bot 85 and high to bot 83
|
|
||||||
bot 30 gives low to bot 159 and high to bot 68
|
|
||||||
bot 55 gives low to bot 203 and high to bot 193
|
|
||||||
bot 199 gives low to bot 68 and high to bot 135
|
|
||||||
bot 170 gives low to bot 97 and high to bot 5
|
|
||||||
bot 65 gives low to bot 152 and high to bot 194
|
|
||||||
bot 43 gives low to bot 4 and high to bot 181
|
|
||||||
bot 113 gives low to output 9 and high to bot 161
|
|
||||||
bot 81 gives low to bot 141 and high to bot 94
|
|
||||||
value 29 goes to bot 7
|
|
||||||
bot 46 gives low to bot 175 and high to bot 195
|
|
||||||
value 47 goes to bot 21
|
|
||||||
value 23 goes to bot 42
|
|
||||||
bot 13 gives low to bot 138 and high to bot 61
|
|
||||||
bot 135 gives low to bot 87 and high to bot 111
|
|
||||||
bot 194 gives low to bot 190 and high to bot 82
|
|
||||||
value 73 goes to bot 109
|
|
||||||
bot 154 gives low to bot 51 and high to bot 12
|
|
||||||
bot 1 gives low to bot 18 and high to bot 209
|
|
||||||
bot 98 gives low to bot 48 and high to bot 45
|
|
||||||
bot 147 gives low to bot 45 and high to bot 95
|
|
||||||
bot 47 gives low to output 19 and high to bot 152
|
|
||||||
bot 26 gives low to bot 56 and high to bot 147
|
|
||||||
bot 179 gives low to bot 161 and high to bot 71
|
|
||||||
bot 148 gives low to bot 204 and high to bot 137
|
|
||||||
bot 5 gives low to bot 67 and high to bot 85
|
|
||||||
bot 174 gives low to bot 132 and high to bot 141
|
|
||||||
bot 8 gives low to bot 13 and high to bot 75
|
|
||||||
bot 82 gives low to bot 146 and high to bot 22
|
|
||||||
bot 123 gives low to bot 40 and high to bot 107
|
|
||||||
bot 99 gives low to bot 32 and high to bot 201
|
|
||||||
bot 41 gives low to bot 196 and high to bot 192
|
|
||||||
bot 139 gives low to bot 150 and high to bot 153
|
|
||||||
bot 11 gives low to output 16 and high to bot 113
|
|
||||||
bot 72 gives low to bot 65 and high to bot 160
|
|
||||||
bot 195 gives low to bot 133 and high to bot 183
|
|
||||||
bot 54 gives low to output 12 and high to output 10
|
|
||||||
bot 158 gives low to bot 102 and high to bot 110
|
|
||||||
bot 112 gives low to bot 19 and high to bot 118
|
|
||||||
bot 31 gives low to bot 208 and high to bot 143
|
|
||||||
bot 167 gives low to bot 7 and high to bot 96
|
|
||||||
bot 63 gives low to bot 92 and high to bot 74
|
|
||||||
bot 116 gives low to bot 20 and high to bot 131
|
|
||||||
bot 184 gives low to bot 39 and high to bot 3
|
|
||||||
bot 162 gives low to bot 205 and high to bot 39
|
|
||||||
bot 108 gives low to output 11 and high to bot 175
|
|
||||||
value 53 goes to bot 207
|
|
||||||
bot 111 gives low to bot 202 and high to bot 184
|
|
||||||
bot 25 gives low to bot 24 and high to bot 83
|
|
||||||
value 71 goes to bot 77
|
|
||||||
bot 69 gives low to bot 142 and high to bot 0
|
|
||||||
bot 146 gives low to output 13 and high to bot 53
|
|
||||||
bot 7 gives low to bot 76 and high to bot 80
|
|
||||||
bot 131 gives low to bot 73 and high to bot 204
|
|
||||||
bot 102 gives low to bot 195 and high to bot 117
|
|
||||||
bot 76 gives low to bot 165 and high to bot 41
|
|
||||||
bot 153 gives low to bot 148 and high to bot 122
|
|
||||||
bot 208 gives low to bot 90 and high to bot 163
|
|
||||||
bot 70 gives low to bot 144 and high to bot 78
|
|
||||||
bot 125 gives low to bot 8 and high to bot 156
|
|
||||||
bot 83 gives low to bot 199 and high to bot 135
|
|
||||||
bot 75 gives low to bot 61 and high to bot 104
|
|
||||||
bot 67 gives low to bot 169 and high to bot 30
|
|
||||||
bot 14 gives low to bot 81 and high to bot 200
|
|
||||||
bot 159 gives low to bot 201 and high to bot 23
|
|
||||||
value 3 goes to bot 93
|
|
||||||
bot 110 gives low to bot 117 and high to bot 89
|
|
||||||
bot 128 gives low to bot 129 and high to bot 182
|
|
||||||
bot 87 gives low to bot 171 and high to bot 111
|
|
||||||
bot 45 gives low to bot 58 and high to bot 95
|
|
||||||
bot 4 gives low to bot 143 and high to bot 166
|
|
||||||
bot 60 gives low to bot 156 and high to bot 208
|
|
||||||
bot 27 gives low to bot 108 and high to bot 46
|
|
||||||
bot 42 gives low to bot 207 and high to bot 149
|
|
||||||
bot 117 gives low to bot 183 and high to bot 72
|
|
||||||
bot 115 gives low to bot 153 and high to bot 134
|
|
||||||
bot 140 gives low to bot 125 and high to bot 60
|
|
||||||
bot 173 gives low to bot 177 and high to bot 174
|
|
||||||
bot 138 gives low to bot 180 and high to bot 52
|
|
||||||
bot 100 gives low to bot 38 and high to bot 59
|
|
||||||
value 41 goes to bot 173
|
|
||||||
value 59 goes to bot 177
|
|
||||||
bot 165 gives low to bot 63 and high to bot 196
|
|
||||||
bot 84 gives low to bot 70 and high to bot 78
|
|
||||||
bot 2 gives low to bot 160 and high to bot 91
|
|
||||||
value 61 goes to bot 29
|
|
||||||
bot 114 gives low to bot 109 and high to bot 186
|
|
||||||
bot 205 gives low to bot 139 and high to bot 115
|
|
||||||
bot 175 gives low to output 17 and high to bot 133
|
|
||||||
bot 176 gives low to bot 57 and high to bot 120
|
|
||||||
bot 107 gives low to bot 124 and high to bot 15
|
|
||||||
bot 52 gives low to bot 27 and high to bot 28
|
|
||||||
bot 103 gives low to bot 50 and high to bot 129
|
|
||||||
bot 150 gives low to bot 131 and high to bot 148
|
|
||||||
bot 16 gives low to output 20 and high to bot 189
|
|
||||||
bot 190 gives low to output 18 and high to bot 146
|
|
||||||
bot 157 gives low to bot 16 and high to bot 180
|
|
||||||
bot 10 gives low to bot 158 and high to bot 130
|
|
||||||
bot 202 gives low to bot 162 and high to bot 184
|
|
||||||
bot 88 gives low to bot 77 and high to bot 84
|
|
||||||
bot 188 gives low to bot 128 and high to bot 38
|
|
||||||
bot 58 gives low to bot 15 and high to bot 101
|
|
||||||
bot 171 gives low to bot 17 and high to bot 202
|
|
||||||
bot 97 gives low to bot 178 and high to bot 67
|
|
||||||
bot 163 gives low to bot 34 and high to bot 116
|
|
||||||
bot 124 gives low to bot 0 and high to bot 145
|
|
||||||
bot 71 gives low to bot 185 and high to bot 54
|
|
||||||
bot 78 gives low to bot 14 and high to bot 200
|
|
||||||
bot 101 gives low to bot 188 and high to bot 100
|
|
||||||
bot 189 gives low to output 7 and high to bot 108
|
|
||||||
bot 95 gives low to bot 101 and high to bot 100
|
|
||||||
bot 0 gives low to bot 35 and high to bot 103
|
|
||||||
bot 207 gives low to bot 37 and high to bot 62
|
|
||||||
bot 49 gives low to bot 11 and high to bot 57
|
|
||||||
bot 85 gives low to bot 30 and high to bot 199
|
|
||||||
bot 89 gives low to bot 72 and high to bot 2
|
|
||||||
bot 3 gives low to bot 134 and high to bot 66
|
|
||||||
bot 181 gives low to bot 166 and high to bot 205
|
|
||||||
bot 91 gives low to bot 151 and high to bot 172
|
|
||||||
value 17 goes to bot 167
|
|
||||||
bot 20 gives low to bot 130 and high to bot 73
|
|
||||||
bot 196 gives low to bot 74 and high to bot 140
|
|
||||||
bot 18 gives low to bot 121 and high to bot 168
|
|
||||||
bot 185 gives low to output 15 and high to bot 54
|
|
||||||
bot 178 gives low to bot 106 and high to bot 169
|
|
||||||
bot 129 gives low to bot 127 and high to bot 49
|
|
||||||
bot 19 gives low to bot 2 and high to bot 164
|
|
||||||
bot 15 gives low to bot 145 and high to bot 188
|
|
||||||
bot 144 gives low to bot 197 and high to bot 14
|
|
||||||
bot 201 gives low to bot 206 and high to bot 198
|
|
||||||
bot 164 gives low to bot 91 and high to bot 203
|
|
||||||
bot 73 gives low to bot 105 and high to bot 112
|
|
||||||
bot 191 gives low to bot 192 and high to bot 154
|
|
||||||
bot 109 gives low to bot 167 and high to bot 86
|
|
||||||
bot 151 gives low to bot 82 and high to bot 79
|
|
||||||
bot 53 gives low to output 2 and high to bot 142
|
|
||||||
bot 37 gives low to bot 29 and high to bot 157
|
|
||||||
value 2 goes to bot 44
|
|
||||||
bot 204 gives low to bot 112 and high to bot 36
|
|
||||||
bot 40 gives low to bot 69 and high to bot 124
|
|
||||||
bot 22 gives low to bot 53 and high to bot 69
|
|
||||||
bot 104 gives low to bot 136 and high to bot 10
|
|
||||||
value 19 goes to bot 88
|
|
||||||
bot 127 gives low to output 5 and high to bot 11
|
|
||||||
bot 183 gives low to bot 47 and high to bot 65
|
|
||||||
bot 192 gives low to bot 140 and high to bot 51
|
|
||||||
bot 38 gives low to bot 182 and high to bot 59
|
|
||||||
bot 61 gives low to bot 52 and high to bot 136
|
|
||||||
bot 156 gives low to bot 75 and high to bot 90
|
|
||||||
value 37 goes to bot 37
|
|
||||||
bot 28 gives low to bot 46 and high to bot 102
|
|
||||||
bot 187 gives low to bot 149 and high to bot 8
|
|
||||||
bot 132 gives low to bot 119 and high to bot 170
|
|
||||||
bot 44 gives low to bot 9 and high to bot 144
|
|
||||||
bot 29 gives low to output 0 and high to bot 16
|
|
||||||
bot 6 gives low to bot 5 and high to bot 24
|
|
||||||
bot 137 gives low to bot 36 and high to bot 18
|
|
||||||
bot 130 gives low to bot 110 and high to bot 105
|
|
||||||
value 5 goes to bot 92
|
|
||||||
bot 35 gives low to output 3 and high to bot 50
|
|
||||||
bot 152 gives low to output 8 and high to bot 190
|
|
||||||
bot 143 gives low to bot 163 and high to bot 33
|
|
||||||
|
|
@ -1,194 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import dataclasses
|
|
||||||
import heapq
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
from collections.abc import Iterator
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
NUM_FLOORS = 4
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Microchip:
|
|
||||||
element: str
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Generator:
|
|
||||||
element: str
|
|
||||||
|
|
||||||
|
|
||||||
Item = Microchip | Generator
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True, order=True)
|
|
||||||
class State:
|
|
||||||
class Floor(NamedTuple):
|
|
||||||
chip: int
|
|
||||||
generator: int
|
|
||||||
|
|
||||||
elevator: int
|
|
||||||
items: tuple[Floor, ...]
|
|
||||||
|
|
||||||
def __post_init__(self) -> None:
|
|
||||||
assert self.items == tuple(sorted(self.items)) # Sanity check
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse_item(input: str) -> Item:
|
|
||||||
_, element, item_type = input.split()
|
|
||||||
if item_type == "microchip":
|
|
||||||
return Microchip(element.removesuffix("-compatible"))
|
|
||||||
elif item_type == "generator":
|
|
||||||
return Generator(element)
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
def parse_floor(input: str) -> list[Item]:
|
|
||||||
# Simplify parsing, and remove `The Xth floor contains`
|
|
||||||
input = input.removesuffix(".").replace(", and ", ", ").replace(" and ", ", ")
|
|
||||||
input = " ".join(input.split()[4:])
|
|
||||||
if input == "nothing relevant":
|
|
||||||
return []
|
|
||||||
return [parse_item(it) for it in input.split(", ")]
|
|
||||||
|
|
||||||
def parse(input: str) -> dict[Item, int]:
|
|
||||||
return {
|
|
||||||
it: i
|
|
||||||
for i, line in enumerate(input.splitlines())
|
|
||||||
for it in parse_floor(line)
|
|
||||||
}
|
|
||||||
|
|
||||||
def to_state(elevator: int, floors: dict[Item, int]) -> State:
|
|
||||||
elements = {it.element for it in floors}
|
|
||||||
return State(
|
|
||||||
elevator=elevator,
|
|
||||||
items=tuple(
|
|
||||||
sorted(
|
|
||||||
State.Floor(floors[Microchip(elem)], floors[Generator(elem)])
|
|
||||||
for elem in elements
|
|
||||||
)
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
def from_state(state: State) -> tuple[int, dict[Item, int]]:
|
|
||||||
floors: dict[Item, int] = {}
|
|
||||||
for i, (chip, generator) in enumerate(state.items):
|
|
||||||
floors[Microchip(str(i))] = chip
|
|
||||||
floors[Generator(str(i))] = generator
|
|
||||||
return state.elevator, floors
|
|
||||||
|
|
||||||
def solve(state: State) -> int:
|
|
||||||
def items_at(
|
|
||||||
item_type: type[Item],
|
|
||||||
floor: int,
|
|
||||||
items: dict[Item, int],
|
|
||||||
) -> set[str]:
|
|
||||||
return {
|
|
||||||
it.element
|
|
||||||
for it, it_floor in items.items()
|
|
||||||
if it_floor == floor and isinstance(it, item_type)
|
|
||||||
}
|
|
||||||
|
|
||||||
def neighbours(state: State) -> Iterator[State]:
|
|
||||||
elevator, all_items = from_state(state)
|
|
||||||
chips = items_at(Microchip, elevator, all_items)
|
|
||||||
gens = items_at(Generator, elevator, all_items)
|
|
||||||
for dest_floor in (elevator - 1, elevator + 1):
|
|
||||||
# Don't move the elevator out of bounds
|
|
||||||
if dest_floor < 0 or dest_floor >= NUM_FLOORS:
|
|
||||||
continue
|
|
||||||
|
|
||||||
dest_chips = items_at(Microchip, dest_floor, all_items)
|
|
||||||
dest_gens = items_at(Generator, dest_floor, all_items)
|
|
||||||
unmatched_chips = dest_chips - dest_gens
|
|
||||||
if unmatched_chips:
|
|
||||||
assert not dest_gens # Sanity check
|
|
||||||
|
|
||||||
single_items: list[Item] = []
|
|
||||||
# Chips
|
|
||||||
for chip in chips:
|
|
||||||
# can move to floors with no generator, or a matching generator
|
|
||||||
if dest_gens and chip not in dest_gens:
|
|
||||||
continue
|
|
||||||
single_items.append(Microchip(chip))
|
|
||||||
# Generators
|
|
||||||
for gen in gens:
|
|
||||||
# can move to floors without unmatched chips or only their chip
|
|
||||||
if unmatched_chips - {gen}:
|
|
||||||
continue
|
|
||||||
# ... but only if they're not currently protecting their chip
|
|
||||||
if gen in chips and gens - {gen}:
|
|
||||||
continue
|
|
||||||
single_items.append(Generator(gen))
|
|
||||||
|
|
||||||
double_items: list[tuple[Item, Item]] = []
|
|
||||||
# Two chips
|
|
||||||
for chip1, chip2 in itertools.combinations(chips, 2):
|
|
||||||
# Can move to floors with no generator, or both matching generators
|
|
||||||
if dest_gens and not dest_gens.issuperset({chip1, chip2}):
|
|
||||||
continue
|
|
||||||
double_items.append((Microchip(chip1), Microchip(chip2)))
|
|
||||||
# Two generators
|
|
||||||
for gen1, gen2 in itertools.combinations(gens, 2):
|
|
||||||
# Can move to floors with unmatched chips, if they match them...
|
|
||||||
if unmatched_chips - {gen1, gen2}:
|
|
||||||
continue
|
|
||||||
# ... but only if they're not currently protecting their chip
|
|
||||||
if (gen1 in chips or gen2 in chips) and gens - {gen1, gen2}:
|
|
||||||
continue
|
|
||||||
double_items.append((Generator(gen1), Generator(gen2)))
|
|
||||||
# Matching generator and chip
|
|
||||||
for match in chips & gens:
|
|
||||||
# Can move to floors with no unmatched chips
|
|
||||||
if not unmatched_chips:
|
|
||||||
double_items.append((Microchip(match), Generator(match)))
|
|
||||||
|
|
||||||
for item in single_items:
|
|
||||||
new_items = all_items | {item: dest_floor}
|
|
||||||
assert new_items.keys() == all_items.keys() # Sanity check
|
|
||||||
yield to_state(dest_floor, new_items)
|
|
||||||
for item1, item2 in double_items:
|
|
||||||
new_items = all_items | {item1: dest_floor, item2: dest_floor}
|
|
||||||
assert new_items.keys() == all_items.keys() # Sanity check
|
|
||||||
yield to_state(dest_floor, new_items)
|
|
||||||
|
|
||||||
def dijkstra(start: State, end: State) -> int:
|
|
||||||
# Priority queue of (distance, point)
|
|
||||||
queue = [(0, start)]
|
|
||||||
seen: set[State] = set()
|
|
||||||
|
|
||||||
while len(queue) > 0:
|
|
||||||
dist, p = heapq.heappop(queue)
|
|
||||||
if p == end:
|
|
||||||
return dist
|
|
||||||
# We must have seen p with a smaller distance before
|
|
||||||
if p in seen:
|
|
||||||
continue
|
|
||||||
# First time encountering p, must be the smallest distance to it
|
|
||||||
seen.add(p)
|
|
||||||
# Add all neighbours to be visited
|
|
||||||
for n in neighbours(p):
|
|
||||||
heapq.heappush(queue, (dist + 1, n))
|
|
||||||
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
# On the end state, we want all items pairs on the top floor
|
|
||||||
# The elevator must be on the top floor as well to get the last item up
|
|
||||||
top = NUM_FLOORS - 1
|
|
||||||
end = State(top, tuple(State.Floor(top, top) for _ in state.items))
|
|
||||||
return dijkstra(state, end)
|
|
||||||
|
|
||||||
floors = parse(input)
|
|
||||||
state = to_state(0, floors)
|
|
||||||
return solve(state)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The first floor contains a promethium generator and a promethium-compatible microchip.
|
|
||||||
The second floor contains a cobalt generator, a curium generator, a ruthenium generator, and a plutonium generator.
|
|
||||||
The third floor contains a cobalt-compatible microchip, a curium-compatible microchip, a ruthenium-compatible microchip, and a plutonium-compatible microchip.
|
|
||||||
The fourth floor contains nothing relevant.
|
|
||||||
|
|
@ -1,197 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import dataclasses
|
|
||||||
import heapq
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
from collections.abc import Iterator
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
NUM_FLOORS = 4
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Microchip:
|
|
||||||
element: str
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True)
|
|
||||||
class Generator:
|
|
||||||
element: str
|
|
||||||
|
|
||||||
|
|
||||||
Item = Microchip | Generator
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(frozen=True, order=True)
|
|
||||||
class State:
|
|
||||||
class Floor(NamedTuple):
|
|
||||||
chip: int
|
|
||||||
generator: int
|
|
||||||
|
|
||||||
elevator: int
|
|
||||||
items: tuple[Floor, ...]
|
|
||||||
|
|
||||||
def __post_init__(self) -> None:
|
|
||||||
assert self.items == tuple(sorted(self.items)) # Sanity check
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse_item(input: str) -> Item:
|
|
||||||
_, element, item_type = input.split()
|
|
||||||
if item_type == "microchip":
|
|
||||||
return Microchip(element.removesuffix("-compatible"))
|
|
||||||
elif item_type == "generator":
|
|
||||||
return Generator(element)
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
def parse_floor(input: str) -> list[Item]:
|
|
||||||
# Simplify parsing, and remove `The Xth floor contains`
|
|
||||||
input = input.removesuffix(".").replace(", and ", ", ").replace(" and ", ", ")
|
|
||||||
input = " ".join(input.split()[4:])
|
|
||||||
if input == "nothing relevant":
|
|
||||||
return []
|
|
||||||
return [parse_item(it) for it in input.split(", ")]
|
|
||||||
|
|
||||||
def parse(input: str) -> dict[Item, int]:
|
|
||||||
return {
|
|
||||||
it: i
|
|
||||||
for i, line in enumerate(input.splitlines())
|
|
||||||
for it in parse_floor(line)
|
|
||||||
}
|
|
||||||
|
|
||||||
def to_state(elevator: int, floors: dict[Item, int]) -> State:
|
|
||||||
elements = {it.element for it in floors}
|
|
||||||
return State(
|
|
||||||
elevator=elevator,
|
|
||||||
items=tuple(
|
|
||||||
sorted(
|
|
||||||
State.Floor(floors[Microchip(elem)], floors[Generator(elem)])
|
|
||||||
for elem in elements
|
|
||||||
)
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
def from_state(state: State) -> tuple[int, dict[Item, int]]:
|
|
||||||
floors: dict[Item, int] = {}
|
|
||||||
for i, (chip, generator) in enumerate(state.items):
|
|
||||||
floors[Microchip(str(i))] = chip
|
|
||||||
floors[Generator(str(i))] = generator
|
|
||||||
return state.elevator, floors
|
|
||||||
|
|
||||||
def solve(state: State) -> int:
|
|
||||||
def items_at(
|
|
||||||
item_type: type[Item],
|
|
||||||
floor: int,
|
|
||||||
items: dict[Item, int],
|
|
||||||
) -> set[str]:
|
|
||||||
return {
|
|
||||||
it.element
|
|
||||||
for it, it_floor in items.items()
|
|
||||||
if it_floor == floor and isinstance(it, item_type)
|
|
||||||
}
|
|
||||||
|
|
||||||
def neighbours(state: State) -> Iterator[State]:
|
|
||||||
elevator, all_items = from_state(state)
|
|
||||||
chips = items_at(Microchip, elevator, all_items)
|
|
||||||
gens = items_at(Generator, elevator, all_items)
|
|
||||||
for dest_floor in (elevator - 1, elevator + 1):
|
|
||||||
# Don't move the elevator out of bounds
|
|
||||||
if dest_floor < 0 or dest_floor >= NUM_FLOORS:
|
|
||||||
continue
|
|
||||||
|
|
||||||
dest_chips = items_at(Microchip, dest_floor, all_items)
|
|
||||||
dest_gens = items_at(Generator, dest_floor, all_items)
|
|
||||||
unmatched_chips = dest_chips - dest_gens
|
|
||||||
if unmatched_chips:
|
|
||||||
assert not dest_gens # Sanity check
|
|
||||||
|
|
||||||
single_items: list[Item] = []
|
|
||||||
# Chips
|
|
||||||
for chip in chips:
|
|
||||||
# can move to floors with no generator, or a matching generator
|
|
||||||
if dest_gens and chip not in dest_gens:
|
|
||||||
continue
|
|
||||||
single_items.append(Microchip(chip))
|
|
||||||
# Generators
|
|
||||||
for gen in gens:
|
|
||||||
# can move to floors without unmatched chips or only their chip
|
|
||||||
if unmatched_chips - {gen}:
|
|
||||||
continue
|
|
||||||
# ... but only if they're not currently protecting their chip
|
|
||||||
if gen in chips and gens - {gen}:
|
|
||||||
continue
|
|
||||||
single_items.append(Generator(gen))
|
|
||||||
|
|
||||||
double_items: list[tuple[Item, Item]] = []
|
|
||||||
# Two chips
|
|
||||||
for chip1, chip2 in itertools.combinations(chips, 2):
|
|
||||||
# Can move to floors with no generator, or both matching generators
|
|
||||||
if dest_gens and not dest_gens.issuperset({chip1, chip2}):
|
|
||||||
continue
|
|
||||||
double_items.append((Microchip(chip1), Microchip(chip2)))
|
|
||||||
# Two generators
|
|
||||||
for gen1, gen2 in itertools.combinations(gens, 2):
|
|
||||||
# Can move to floors with unmatched chips, if they match them...
|
|
||||||
if unmatched_chips - {gen1, gen2}:
|
|
||||||
continue
|
|
||||||
# ... but only if they're not currently protecting their chip
|
|
||||||
if (gen1 in chips or gen2 in chips) and gens - {gen1, gen2}:
|
|
||||||
continue
|
|
||||||
double_items.append((Generator(gen1), Generator(gen2)))
|
|
||||||
# Matching generator and chip
|
|
||||||
for match in chips & gens:
|
|
||||||
# Can move to floors with no unmatched chips
|
|
||||||
if not unmatched_chips:
|
|
||||||
double_items.append((Microchip(match), Generator(match)))
|
|
||||||
|
|
||||||
for item in single_items:
|
|
||||||
new_items = all_items | {item: dest_floor}
|
|
||||||
assert new_items.keys() == all_items.keys() # Sanity check
|
|
||||||
yield to_state(dest_floor, new_items)
|
|
||||||
for item1, item2 in double_items:
|
|
||||||
new_items = all_items | {item1: dest_floor, item2: dest_floor}
|
|
||||||
assert new_items.keys() == all_items.keys() # Sanity check
|
|
||||||
yield to_state(dest_floor, new_items)
|
|
||||||
|
|
||||||
def dijkstra(start: State, end: State) -> int:
|
|
||||||
# Priority queue of (distance, point)
|
|
||||||
queue = [(0, start)]
|
|
||||||
seen: set[State] = set()
|
|
||||||
|
|
||||||
while len(queue) > 0:
|
|
||||||
dist, p = heapq.heappop(queue)
|
|
||||||
if p == end:
|
|
||||||
return dist
|
|
||||||
# We must have seen p with a smaller distance before
|
|
||||||
if p in seen:
|
|
||||||
continue
|
|
||||||
# First time encountering p, must be the smallest distance to it
|
|
||||||
seen.add(p)
|
|
||||||
# Add all neighbours to be visited
|
|
||||||
for n in neighbours(p):
|
|
||||||
heapq.heappush(queue, (dist + 1, n))
|
|
||||||
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
# On the end state, we want all items pairs on the top floor
|
|
||||||
# The elevator must be on the top floor as well to get the last item up
|
|
||||||
top = NUM_FLOORS - 1
|
|
||||||
end = State(top, tuple(State.Floor(top, top) for _ in state.items))
|
|
||||||
return dijkstra(state, end)
|
|
||||||
|
|
||||||
floors = parse(input)
|
|
||||||
for elem in ("elerium", "dilithium"):
|
|
||||||
floors[Microchip(elem)] = 0
|
|
||||||
floors[Generator(elem)] = 0
|
|
||||||
state = to_state(0, floors)
|
|
||||||
return solve(state)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The first floor contains a promethium generator and a promethium-compatible microchip.
|
|
||||||
The second floor contains a cobalt generator, a curium generator, a ruthenium generator, and a plutonium generator.
|
|
||||||
The third floor contains a cobalt-compatible microchip, a curium-compatible microchip, a ruthenium-compatible microchip, and a plutonium-compatible microchip.
|
|
||||||
The fourth floor contains nothing relevant.
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Op(enum.StrEnum):
|
|
||||||
CPY = "cpy"
|
|
||||||
INC = "inc"
|
|
||||||
DEC = "dec"
|
|
||||||
JNZ = "jnz"
|
|
||||||
|
|
||||||
|
|
||||||
class Instruction(NamedTuple):
|
|
||||||
op: Op
|
|
||||||
x: str
|
|
||||||
y: str | None = None
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Instruction":
|
|
||||||
op, *rest = input.split()
|
|
||||||
return cls(Op(op), *rest)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Instruction]:
|
|
||||||
return [Instruction.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def resolve(y: str | None, registers: dict[str, int]) -> int:
|
|
||||||
assert y is not None # Sanity check
|
|
||||||
try:
|
|
||||||
return int(y)
|
|
||||||
except ValueError:
|
|
||||||
return registers[y]
|
|
||||||
|
|
||||||
instructions = parse(input)
|
|
||||||
registers: dict[str, int] = collections.defaultdict(int)
|
|
||||||
|
|
||||||
ip = 0
|
|
||||||
while True:
|
|
||||||
if ip < 0 or ip >= len(instructions):
|
|
||||||
break
|
|
||||||
instr = instructions[ip]
|
|
||||||
ip += 1
|
|
||||||
match instr.op:
|
|
||||||
case Op.CPY:
|
|
||||||
assert instr.y is not None
|
|
||||||
registers[instr.y] = resolve(instr.x, registers)
|
|
||||||
case Op.INC:
|
|
||||||
registers[instr.x] += 1
|
|
||||||
case Op.DEC:
|
|
||||||
registers[instr.x] -= 1
|
|
||||||
case Op.JNZ:
|
|
||||||
if resolve(instr.x, registers) != 0:
|
|
||||||
ip += resolve(instr.y, registers) - 1 # Account auto-increment
|
|
||||||
return registers["a"]
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
cpy 1 a
|
|
||||||
cpy 1 b
|
|
||||||
cpy 26 d
|
|
||||||
jnz c 2
|
|
||||||
jnz 1 5
|
|
||||||
cpy 7 c
|
|
||||||
inc d
|
|
||||||
dec c
|
|
||||||
jnz c -2
|
|
||||||
cpy a c
|
|
||||||
inc a
|
|
||||||
dec b
|
|
||||||
jnz b -2
|
|
||||||
cpy c b
|
|
||||||
dec d
|
|
||||||
jnz d -6
|
|
||||||
cpy 13 c
|
|
||||||
cpy 14 d
|
|
||||||
inc a
|
|
||||||
dec d
|
|
||||||
jnz d -2
|
|
||||||
dec c
|
|
||||||
jnz c -5
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Op(enum.StrEnum):
|
|
||||||
CPY = "cpy"
|
|
||||||
INC = "inc"
|
|
||||||
DEC = "dec"
|
|
||||||
JNZ = "jnz"
|
|
||||||
|
|
||||||
|
|
||||||
class Instruction(NamedTuple):
|
|
||||||
op: Op
|
|
||||||
x: str
|
|
||||||
y: str | None = None
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Instruction":
|
|
||||||
op, *rest = input.split()
|
|
||||||
return cls(Op(op), *rest)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Instruction]:
|
|
||||||
return [Instruction.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def fibonacci(n: int) -> int:
|
|
||||||
a, b = 1, 1
|
|
||||||
for _ in range(n):
|
|
||||||
a, b = b, a + b
|
|
||||||
return b
|
|
||||||
|
|
||||||
instructions = parse(input)
|
|
||||||
fib_n = int(instructions[2].x) + int(instructions[5].x)
|
|
||||||
mult = int(instructions[16].x)
|
|
||||||
fact = int(instructions[17].x)
|
|
||||||
return fibonacci(fib_n) + mult * fact
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
cpy 1 a
|
|
||||||
cpy 1 b
|
|
||||||
cpy 26 d
|
|
||||||
jnz c 2
|
|
||||||
jnz 1 5
|
|
||||||
cpy 7 c
|
|
||||||
inc d
|
|
||||||
dec c
|
|
||||||
jnz c -2
|
|
||||||
cpy a c
|
|
||||||
inc a
|
|
||||||
dec b
|
|
||||||
jnz b -2
|
|
||||||
cpy c b
|
|
||||||
dec d
|
|
||||||
jnz d -6
|
|
||||||
cpy 13 c
|
|
||||||
cpy 14 d
|
|
||||||
inc a
|
|
||||||
dec d
|
|
||||||
jnz d -2
|
|
||||||
dec c
|
|
||||||
jnz c -5
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import functools
|
|
||||||
import heapq
|
|
||||||
import sys
|
|
||||||
from collections.abc import Callable, Iterator
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def office_location_open(p: Point, number: int) -> bool:
|
|
||||||
x, y = p
|
|
||||||
return (x * x + 3 * x + 2 * x * y + y + y * y + number).bit_count() % 2 == 0
|
|
||||||
|
|
||||||
def office_neighbours(p: Point, number: int) -> Iterator[Point]:
|
|
||||||
for dx, dy in (
|
|
||||||
(-1, 0),
|
|
||||||
(1, 0),
|
|
||||||
(0, -1),
|
|
||||||
(0, 1),
|
|
||||||
):
|
|
||||||
n = Point(p.x + dx, p.y + dy)
|
|
||||||
if n.x < 0 or n.y < 0:
|
|
||||||
continue
|
|
||||||
if office_location_open(n, number):
|
|
||||||
yield n
|
|
||||||
|
|
||||||
def dijkstra(
|
|
||||||
start: Point,
|
|
||||||
end: Point,
|
|
||||||
neighbours: Callable[[Point], Iterator[Point]],
|
|
||||||
) -> int:
|
|
||||||
# Priority queue of (distance, point)
|
|
||||||
queue = [(0, start)]
|
|
||||||
seen: set[Point] = set()
|
|
||||||
|
|
||||||
while len(queue) > 0:
|
|
||||||
dist, p = heapq.heappop(queue)
|
|
||||||
if p == end:
|
|
||||||
return dist
|
|
||||||
# We must have seen p with a smaller distance before
|
|
||||||
if p in seen:
|
|
||||||
continue
|
|
||||||
# First time encountering p, must be the smallest distance to it
|
|
||||||
seen.add(p)
|
|
||||||
# Add all neighbours to be visited
|
|
||||||
for n in neighbours(p):
|
|
||||||
heapq.heappush(queue, (dist + 1, n))
|
|
||||||
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
favorite_number = int(input.strip())
|
|
||||||
neighbours = functools.partial(office_neighbours, number=favorite_number)
|
|
||||||
return dijkstra(Point(1, 1), Point(31, 39), neighbours)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
1358
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import functools
|
|
||||||
import heapq
|
|
||||||
import sys
|
|
||||||
from collections.abc import Callable, Iterator
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def office_location_open(p: Point, number: int) -> bool:
|
|
||||||
x, y = p
|
|
||||||
return (x * x + 3 * x + 2 * x * y + y + y * y + number).bit_count() % 2 == 0
|
|
||||||
|
|
||||||
def office_neighbours(p: Point, number: int) -> Iterator[Point]:
|
|
||||||
for dx, dy in (
|
|
||||||
(-1, 0),
|
|
||||||
(1, 0),
|
|
||||||
(0, -1),
|
|
||||||
(0, 1),
|
|
||||||
):
|
|
||||||
n = Point(p.x + dx, p.y + dy)
|
|
||||||
if n.x < 0 or n.y < 0:
|
|
||||||
continue
|
|
||||||
if office_location_open(n, number):
|
|
||||||
yield n
|
|
||||||
|
|
||||||
def explore(
|
|
||||||
start: Point,
|
|
||||||
max_steps: int,
|
|
||||||
neighbours: Callable[[Point], Iterator[Point]],
|
|
||||||
) -> int:
|
|
||||||
queue = [(0, start)]
|
|
||||||
seen: set[Point] = set()
|
|
||||||
|
|
||||||
while len(queue) > 0:
|
|
||||||
dist, p = heapq.heappop(queue)
|
|
||||||
if dist > max_steps:
|
|
||||||
continue
|
|
||||||
# We must have seen p with a smaller distance before
|
|
||||||
if p in seen:
|
|
||||||
continue
|
|
||||||
# First time encountering p, must be the smallest distance to it
|
|
||||||
seen.add(p)
|
|
||||||
# Add all neighbours to be visited
|
|
||||||
for n in neighbours(p):
|
|
||||||
heapq.heappush(queue, (dist + 1, n))
|
|
||||||
|
|
||||||
return len(seen)
|
|
||||||
|
|
||||||
favorite_number = int(input.strip())
|
|
||||||
neighbours = functools.partial(office_neighbours, number=favorite_number)
|
|
||||||
return explore(Point(1, 1), 50, neighbours)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
1358
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import functools
|
|
||||||
import hashlib
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def hash(n: int, salt: str) -> str:
|
|
||||||
return hashlib.md5((salt + str(n)).encode()).hexdigest()
|
|
||||||
|
|
||||||
def find_triplet_char(input: str) -> str | None:
|
|
||||||
for i in range(0, len(input) - 2):
|
|
||||||
a, b, c = input[i], input[i + 1], input[i + 2]
|
|
||||||
if a == b and b == c:
|
|
||||||
return a
|
|
||||||
return None
|
|
||||||
|
|
||||||
salt = input.strip()
|
|
||||||
hashed_salt = functools.cache(functools.partial(hash, salt=salt))
|
|
||||||
cur_key = 0
|
|
||||||
for i in itertools.count():
|
|
||||||
candidate = hashed_salt(i)
|
|
||||||
if (triplet_char := find_triplet_char(candidate)) is None:
|
|
||||||
continue
|
|
||||||
for j in range(i + 1, i + 1000 + 1):
|
|
||||||
if (triplet_char * 5) in hashed_salt(j):
|
|
||||||
cur_key += 1
|
|
||||||
if cur_key == 64:
|
|
||||||
return i
|
|
||||||
break
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
ihaygndm
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import functools
|
|
||||||
import hashlib
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def hash(n: int, salt: str) -> str:
|
|
||||||
key = salt + str(n)
|
|
||||||
for _ in range(2016 + 1):
|
|
||||||
key = hashlib.md5(key.encode()).hexdigest()
|
|
||||||
return key
|
|
||||||
|
|
||||||
def find_triplet_char(input: str) -> str | None:
|
|
||||||
for i in range(0, len(input) - 2):
|
|
||||||
a, b, c = input[i], input[i + 1], input[i + 2]
|
|
||||||
if a == b and b == c:
|
|
||||||
return a
|
|
||||||
return None
|
|
||||||
|
|
||||||
salt = input.strip()
|
|
||||||
hashed_salt = functools.cache(functools.partial(hash, salt=salt))
|
|
||||||
cur_key = 0
|
|
||||||
for i in itertools.count():
|
|
||||||
candidate = hashed_salt(i)
|
|
||||||
if (triplet_char := find_triplet_char(candidate)) is None:
|
|
||||||
continue
|
|
||||||
for j in range(i + 1, i + 1000 + 1):
|
|
||||||
if (triplet_char * 5) in hashed_salt(j):
|
|
||||||
cur_key += 1
|
|
||||||
if cur_key == 64:
|
|
||||||
return i
|
|
||||||
break
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
ihaygndm
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import math
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Disc(NamedTuple):
|
|
||||||
num: int
|
|
||||||
positions: int
|
|
||||||
start_offset: int
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Disc":
|
|
||||||
input = input.removeprefix("Disc #").removesuffix(".")
|
|
||||||
split_input = input.split()
|
|
||||||
return Disc(
|
|
||||||
int(split_input[0]),
|
|
||||||
int(split_input[2]),
|
|
||||||
int(split_input[-1]),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Disc]:
|
|
||||||
return [Disc.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
# https://rosettacode.org/wiki/Chinese_remainder_theorem#Python_3.6
|
|
||||||
def mul_inv(a: int, b: int) -> int:
|
|
||||||
b0 = b
|
|
||||||
x0, x1 = 0, 1
|
|
||||||
if b == 1:
|
|
||||||
return 1
|
|
||||||
while a > 1:
|
|
||||||
q = a // b
|
|
||||||
a, b = b, a % b
|
|
||||||
x0, x1 = x1 - q * x0, x0
|
|
||||||
if x1 < 0:
|
|
||||||
x1 += b0
|
|
||||||
return x1
|
|
||||||
|
|
||||||
def chinese_remainder(residue_mapping: dict[int, int]) -> int:
|
|
||||||
res = 0
|
|
||||||
prod = math.prod(residue_mapping)
|
|
||||||
for n_i, a_i in residue_mapping.items():
|
|
||||||
p = prod // n_i
|
|
||||||
res += a_i * mul_inv(p, n_i) * p
|
|
||||||
return res % prod
|
|
||||||
|
|
||||||
discs = parse(input)
|
|
||||||
residues = {disc.positions: -(disc.start_offset + disc.num) for disc in discs}
|
|
||||||
return chinese_remainder(residues)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
Disc #1 has 17 positions; at time=0, it is at position 1.
|
|
||||||
Disc #2 has 7 positions; at time=0, it is at position 0.
|
|
||||||
Disc #3 has 19 positions; at time=0, it is at position 2.
|
|
||||||
Disc #4 has 5 positions; at time=0, it is at position 0.
|
|
||||||
Disc #5 has 3 positions; at time=0, it is at position 0.
|
|
||||||
Disc #6 has 13 positions; at time=0, it is at position 5.
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import math
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Disc(NamedTuple):
|
|
||||||
num: int
|
|
||||||
positions: int
|
|
||||||
start_offset: int
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Disc":
|
|
||||||
input = input.removeprefix("Disc #").removesuffix(".")
|
|
||||||
split_input = input.split()
|
|
||||||
return Disc(
|
|
||||||
int(split_input[0]),
|
|
||||||
int(split_input[2]),
|
|
||||||
int(split_input[-1]),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Disc]:
|
|
||||||
return [Disc.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
# https://rosettacode.org/wiki/Chinese_remainder_theorem#Python_3.6
|
|
||||||
def mul_inv(a: int, b: int) -> int:
|
|
||||||
b0 = b
|
|
||||||
x0, x1 = 0, 1
|
|
||||||
if b == 1:
|
|
||||||
return 1
|
|
||||||
while a > 1:
|
|
||||||
q = a // b
|
|
||||||
a, b = b, a % b
|
|
||||||
x0, x1 = x1 - q * x0, x0
|
|
||||||
if x1 < 0:
|
|
||||||
x1 += b0
|
|
||||||
return x1
|
|
||||||
|
|
||||||
def chinese_remainder(residue_mapping: dict[int, int]) -> int:
|
|
||||||
res = 0
|
|
||||||
prod = math.prod(residue_mapping)
|
|
||||||
for n_i, a_i in residue_mapping.items():
|
|
||||||
p = prod // n_i
|
|
||||||
res += a_i * mul_inv(p, n_i) * p
|
|
||||||
return res % prod
|
|
||||||
|
|
||||||
discs = parse(input)
|
|
||||||
discs.append(Disc(len(discs) + 1, 11, 0))
|
|
||||||
residues = {disc.positions: -(disc.start_offset + disc.num) for disc in discs}
|
|
||||||
return chinese_remainder(residues)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
Disc #1 has 17 positions; at time=0, it is at position 1.
|
|
||||||
Disc #2 has 7 positions; at time=0, it is at position 0.
|
|
||||||
Disc #3 has 19 positions; at time=0, it is at position 2.
|
|
||||||
Disc #4 has 5 positions; at time=0, it is at position 0.
|
|
||||||
Disc #5 has 3 positions; at time=0, it is at position 0.
|
|
||||||
Disc #6 has 13 positions; at time=0, it is at position 5.
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def curve_step(input: str) -> str:
|
|
||||||
b = input.translate(str.maketrans("01", "10"))[::-1]
|
|
||||||
return input + "0" + b
|
|
||||||
|
|
||||||
def checksum(state: str) -> str:
|
|
||||||
while len(state) % 2 == 0:
|
|
||||||
state = "".join(str(int(a == b)) for a, b in itertools.batched(state, 2))
|
|
||||||
return state
|
|
||||||
|
|
||||||
state = input.strip()
|
|
||||||
disk_size = 272
|
|
||||||
while len(state) < disk_size:
|
|
||||||
state = curve_step(state)
|
|
||||||
return checksum(state[:disk_size])
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
00101000101111010
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def curve_step(input: str) -> str:
|
|
||||||
b = input.translate(str.maketrans("01", "10"))[::-1]
|
|
||||||
return input + "0" + b
|
|
||||||
|
|
||||||
def checksum(state: str) -> str:
|
|
||||||
while len(state) % 2 == 0:
|
|
||||||
state = "".join(str(int(a == b)) for a, b in itertools.batched(state, 2))
|
|
||||||
return state
|
|
||||||
|
|
||||||
state = input.strip()
|
|
||||||
disk_size = 35651584
|
|
||||||
while len(state) < disk_size:
|
|
||||||
state = curve_step(state)
|
|
||||||
return checksum(state[:disk_size])
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
00101000101111010
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import functools
|
|
||||||
import hashlib
|
|
||||||
import sys
|
|
||||||
from collections.abc import Callable, Iterator
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
# Iteration order of `Direction` is relevant to the solution
|
|
||||||
class Direction(enum.StrEnum):
|
|
||||||
UP = "U"
|
|
||||||
DOWN = "D"
|
|
||||||
LEFT = "L"
|
|
||||||
RIGHT = "R"
|
|
||||||
|
|
||||||
def apply(self, p: Point) -> Point:
|
|
||||||
match self:
|
|
||||||
case Direction.UP:
|
|
||||||
dx, dy = -1, 0
|
|
||||||
case Direction.DOWN:
|
|
||||||
dx, dy = 1, 0
|
|
||||||
case Direction.LEFT:
|
|
||||||
dx, dy = 0, -1
|
|
||||||
case Direction.RIGHT:
|
|
||||||
dx, dy = 0, 1
|
|
||||||
return Point(p.x + dx, p.y + dy)
|
|
||||||
|
|
||||||
|
|
||||||
Path = tuple[Direction, ...]
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def doors_at_passcode(path: Path, passcode: str) -> Iterator[Direction]:
|
|
||||||
hashed = hashlib.md5((passcode + "".join(path)).encode()).hexdigest()[:4]
|
|
||||||
for c, dir in zip(hashed, Direction):
|
|
||||||
if c.isdigit() or c == "a":
|
|
||||||
continue
|
|
||||||
yield Direction(dir) # Satisfy Mypy to use the correct return type...
|
|
||||||
|
|
||||||
def bfs(
|
|
||||||
start: Point,
|
|
||||||
end: Point,
|
|
||||||
doors_at: Callable[[Path], Iterator[Direction]],
|
|
||||||
) -> Path:
|
|
||||||
queue: list[tuple[Point, Path]] = [(start, ())]
|
|
||||||
|
|
||||||
while queue:
|
|
||||||
new_queue: list[tuple[Point, Path]] = []
|
|
||||||
for p, path in queue:
|
|
||||||
if p == end:
|
|
||||||
return path
|
|
||||||
for dir in doors_at(path):
|
|
||||||
new_pos = dir.apply(p)
|
|
||||||
if new_pos.x < 0 or new_pos.x > end.x:
|
|
||||||
continue
|
|
||||||
if new_pos.y < 0 or new_pos.y > end.y:
|
|
||||||
continue
|
|
||||||
new_queue.append((dir.apply(p), path + (dir,)))
|
|
||||||
queue = new_queue
|
|
||||||
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
passcode = input.strip()
|
|
||||||
doors_at = functools.partial(doors_at_passcode, passcode=passcode)
|
|
||||||
return "".join(bfs(Point(0, 0), Point(3, 3), doors_at))
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
pgflpeqp
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import functools
|
|
||||||
import hashlib
|
|
||||||
import sys
|
|
||||||
from collections.abc import Callable, Iterator
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
# Iteration order of `Direction` is relevant to the solution
|
|
||||||
class Direction(enum.StrEnum):
|
|
||||||
UP = "U"
|
|
||||||
DOWN = "D"
|
|
||||||
LEFT = "L"
|
|
||||||
RIGHT = "R"
|
|
||||||
|
|
||||||
def apply(self, p: Point) -> Point:
|
|
||||||
match self:
|
|
||||||
case Direction.UP:
|
|
||||||
dx, dy = -1, 0
|
|
||||||
case Direction.DOWN:
|
|
||||||
dx, dy = 1, 0
|
|
||||||
case Direction.LEFT:
|
|
||||||
dx, dy = 0, -1
|
|
||||||
case Direction.RIGHT:
|
|
||||||
dx, dy = 0, 1
|
|
||||||
return Point(p.x + dx, p.y + dy)
|
|
||||||
|
|
||||||
|
|
||||||
Path = tuple[Direction, ...]
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def doors_at_passcode(path: Path, passcode: str) -> Iterator[Direction]:
|
|
||||||
hashed = hashlib.md5((passcode + "".join(path)).encode()).hexdigest()[:4]
|
|
||||||
for c, dir in zip(hashed, Direction):
|
|
||||||
if c.isdigit() or c == "a":
|
|
||||||
continue
|
|
||||||
yield Direction(dir) # Satisfy Mypy to use the correct return type...
|
|
||||||
|
|
||||||
def bfs(
|
|
||||||
start: Point,
|
|
||||||
end: Point,
|
|
||||||
doors_at: Callable[[Path], Iterator[Direction]],
|
|
||||||
) -> int:
|
|
||||||
queue: list[tuple[Point, Path]] = [(start, ())]
|
|
||||||
max_dist = -1
|
|
||||||
|
|
||||||
while queue:
|
|
||||||
new_queue: list[tuple[Point, Path]] = []
|
|
||||||
for p, path in queue:
|
|
||||||
if p == end:
|
|
||||||
max_dist = max(max_dist, len(path))
|
|
||||||
continue
|
|
||||||
for dir in doors_at(path):
|
|
||||||
new_pos = dir.apply(p)
|
|
||||||
if new_pos.x < 0 or new_pos.x > end.x:
|
|
||||||
continue
|
|
||||||
if new_pos.y < 0 or new_pos.y > end.y:
|
|
||||||
continue
|
|
||||||
new_queue.append((dir.apply(p), path + (dir,)))
|
|
||||||
queue = new_queue
|
|
||||||
|
|
||||||
return max_dist
|
|
||||||
|
|
||||||
passcode = input.strip()
|
|
||||||
doors_at = functools.partial(doors_at_passcode, passcode=passcode)
|
|
||||||
return bfs(Point(0, 0), Point(3, 3), doors_at)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
pgflpeqp
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> set[int]:
|
|
||||||
return {i for i, c in enumerate(input.strip()) if c == "^"}
|
|
||||||
|
|
||||||
def is_trap(tile: int, traps: set[int]) -> bool:
|
|
||||||
match ((tile - 1) in traps, tile in traps, (tile + 1) in traps):
|
|
||||||
case (True, True, False):
|
|
||||||
return True
|
|
||||||
case (False, True, True):
|
|
||||||
return True
|
|
||||||
case (True, False, False):
|
|
||||||
return True
|
|
||||||
case (False, False, True):
|
|
||||||
return True
|
|
||||||
case _:
|
|
||||||
return False
|
|
||||||
|
|
||||||
def step_row(traps: set[int], row_length: int) -> set[int]:
|
|
||||||
return {i for i in range(row_length) if is_trap(i, traps)}
|
|
||||||
|
|
||||||
traps = parse(input)
|
|
||||||
row_length = len(input.strip())
|
|
||||||
safe_tiles = row_length - len(traps)
|
|
||||||
for _ in range(40 - 1):
|
|
||||||
traps = step_row(traps, row_length)
|
|
||||||
safe_tiles += row_length - len(traps)
|
|
||||||
return safe_tiles
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
^..^^.^^^..^^.^...^^^^^....^.^..^^^.^.^.^^...^.^.^.^.^^.....^.^^.^.^.^.^.^.^^..^^^^^...^.....^....^.
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> set[int]:
|
|
||||||
return {i for i, c in enumerate(input.strip()) if c == "^"}
|
|
||||||
|
|
||||||
def is_trap(tile: int, traps: set[int]) -> bool:
|
|
||||||
match ((tile - 1) in traps, tile in traps, (tile + 1) in traps):
|
|
||||||
case (True, True, False):
|
|
||||||
return True
|
|
||||||
case (False, True, True):
|
|
||||||
return True
|
|
||||||
case (True, False, False):
|
|
||||||
return True
|
|
||||||
case (False, False, True):
|
|
||||||
return True
|
|
||||||
case _:
|
|
||||||
return False
|
|
||||||
|
|
||||||
def step_row(traps: set[int], row_length: int) -> set[int]:
|
|
||||||
return {i for i in range(row_length) if is_trap(i, traps)}
|
|
||||||
|
|
||||||
traps = parse(input)
|
|
||||||
row_length = len(input.strip())
|
|
||||||
safe_tiles = row_length - len(traps)
|
|
||||||
# No cycles, we really need to iterate though all steps
|
|
||||||
for _ in range(400000 - 1):
|
|
||||||
traps = step_row(traps, row_length)
|
|
||||||
safe_tiles += row_length - len(traps)
|
|
||||||
return safe_tiles
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
^..^^.^^^..^^.^...^^^^^....^.^..^^^.^.^.^^...^.^.^.^.^^.....^.^^.^.^.^.^.^.^^..^^^^^...^.....^....^.
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def msb(n: int) -> int:
|
|
||||||
assert n # Sanity check
|
|
||||||
return n.bit_length() - 1
|
|
||||||
|
|
||||||
# https://en.wikipedia.org/wiki/Josephus_problem
|
|
||||||
def josephus(n: int) -> int:
|
|
||||||
return 2 * (n - (1 << msb(n))) + 1
|
|
||||||
|
|
||||||
num_elves = int(input.strip())
|
|
||||||
return josephus(num_elves)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
3014387
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def white_elephant(num_elves: int) -> int:
|
|
||||||
left = collections.deque(range(1, (num_elves // 2) + 1))
|
|
||||||
right = collections.deque(range(num_elves, (num_elves // 2), -1))
|
|
||||||
|
|
||||||
while left and right:
|
|
||||||
if len(left) > len(right):
|
|
||||||
left.pop()
|
|
||||||
else:
|
|
||||||
right.pop()
|
|
||||||
right.appendleft(left.popleft())
|
|
||||||
left.append(right.pop())
|
|
||||||
return (left + right)[0]
|
|
||||||
|
|
||||||
num_elves = int(input.strip())
|
|
||||||
return white_elephant(num_elves)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
3014387
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Interval(NamedTuple):
|
|
||||||
start: int
|
|
||||||
end: int
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Interval":
|
|
||||||
start, end = input.split("-")
|
|
||||||
return cls(int(start), int(end))
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Interval]:
|
|
||||||
return [Interval.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def merge_overlaps(intervals: list[Interval]) -> list[Interval]:
|
|
||||||
# Sort intervals by start, then merge overlapping ones
|
|
||||||
intervals = sorted(intervals)
|
|
||||||
res = [intervals[0]]
|
|
||||||
for interval in intervals[1:]:
|
|
||||||
# `+ 1` to merge [0, 2] and [2, 5]
|
|
||||||
if interval.start <= (res[-1].end + 1):
|
|
||||||
res[-1] = Interval(res[-1].start, max(interval.end, res[-1].end))
|
|
||||||
else:
|
|
||||||
res.append(interval)
|
|
||||||
return res
|
|
||||||
|
|
||||||
intervals = parse(input)
|
|
||||||
intervals = merge_overlaps(intervals)
|
|
||||||
return 0 if intervals[0].start else intervals[0].end + 1
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
1029
2016/d20/ex1/input
1029
2016/d20/ex1/input
File diff suppressed because it is too large
Load diff
|
|
@ -1,44 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Interval(NamedTuple):
|
|
||||||
start: int
|
|
||||||
end: int
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Interval":
|
|
||||||
start, end = input.split("-")
|
|
||||||
return cls(int(start), int(end))
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Interval]:
|
|
||||||
return [Interval.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def merge_overlaps(intervals: list[Interval]) -> list[Interval]:
|
|
||||||
# Sort intervals by start, then merge overlapping ones
|
|
||||||
intervals = sorted(intervals)
|
|
||||||
res = [intervals[0]]
|
|
||||||
for interval in intervals[1:]:
|
|
||||||
# `+ 1` to merge [0, 2] and [2, 5]
|
|
||||||
if interval.start <= (res[-1].end + 1):
|
|
||||||
res[-1] = Interval(res[-1].start, max(interval.end, res[-1].end))
|
|
||||||
else:
|
|
||||||
res.append(interval)
|
|
||||||
return res
|
|
||||||
|
|
||||||
intervals = parse(input)
|
|
||||||
intervals = merge_overlaps(intervals)
|
|
||||||
return (1 << 32) - sum((end - start + 1) for start, end in intervals)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
1029
2016/d20/ex2/input
1029
2016/d20/ex2/input
File diff suppressed because it is too large
Load diff
|
|
@ -1,92 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Op(enum.StrEnum):
|
|
||||||
SWAP_POSITION = "swap position"
|
|
||||||
SWAP_LETTER = "swap letter"
|
|
||||||
ROTATE_LEFT = "rotate left"
|
|
||||||
ROTATE_RIGHT = "rotate right"
|
|
||||||
ROTATE_BASED = "rotate based"
|
|
||||||
REVERSE_POSITION = "reverse positions"
|
|
||||||
MOVE_POSITION = "move position"
|
|
||||||
|
|
||||||
|
|
||||||
class Instruction(NamedTuple):
|
|
||||||
op: Op
|
|
||||||
x: str
|
|
||||||
y: str | None
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Instruction":
|
|
||||||
split_input = input.split()
|
|
||||||
op = Op(" ".join(split_input[:2]))
|
|
||||||
x: str
|
|
||||||
y: str | None
|
|
||||||
match op:
|
|
||||||
case Op.ROTATE_LEFT | Op.ROTATE_RIGHT:
|
|
||||||
x, y = split_input[2], None
|
|
||||||
case Op.ROTATE_BASED:
|
|
||||||
x, y = split_input[-1], None
|
|
||||||
case _:
|
|
||||||
x, y = split_input[2], split_input[-1]
|
|
||||||
return cls(op, x, y)
|
|
||||||
|
|
||||||
def apply(self, password: str) -> str:
|
|
||||||
letters = list(password)
|
|
||||||
match self.op:
|
|
||||||
case Op.SWAP_POSITION:
|
|
||||||
assert self.y is not None # Sanity check
|
|
||||||
x, y = int(self.x), int(self.y)
|
|
||||||
letters[x], letters[y] = letters[y], letters[x]
|
|
||||||
case Op.SWAP_LETTER:
|
|
||||||
assert self.y is not None # Sanity check
|
|
||||||
x, y = letters.index(self.x), letters.index(self.y)
|
|
||||||
letters[x], letters[y] = letters[y], letters[x]
|
|
||||||
case Op.ROTATE_LEFT:
|
|
||||||
x = int(self.x)
|
|
||||||
x %= len(letters)
|
|
||||||
letters = letters[x:] + letters[:x]
|
|
||||||
case Op.ROTATE_RIGHT:
|
|
||||||
x = int(self.x)
|
|
||||||
x %= len(letters)
|
|
||||||
letters = letters[-x:] + letters[:-x]
|
|
||||||
case Op.ROTATE_BASED:
|
|
||||||
x = letters.index(self.x)
|
|
||||||
x += x >= 4
|
|
||||||
x += 1
|
|
||||||
x %= len(letters)
|
|
||||||
letters = letters[-x:] + letters[:-x]
|
|
||||||
case Op.REVERSE_POSITION:
|
|
||||||
assert self.y is not None # Sanity check
|
|
||||||
x, y = int(self.x), int(self.y)
|
|
||||||
letters[x : y + 1] = letters[x : y + 1][::-1]
|
|
||||||
case Op.MOVE_POSITION:
|
|
||||||
assert self.y is not None # Sanity check
|
|
||||||
x, y = int(self.x), int(self.y)
|
|
||||||
letter = letters.pop(x)
|
|
||||||
letters.insert(y, letter)
|
|
||||||
return "".join(letters)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def parse(input: str) -> list[Instruction]:
|
|
||||||
return [Instruction.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
instructions = parse(input)
|
|
||||||
password = "abcdefgh"
|
|
||||||
for instruction in instructions:
|
|
||||||
password = instruction.apply(password)
|
|
||||||
return password
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
||||||
swap letter a with letter d
|
|
||||||
move position 6 to position 4
|
|
||||||
move position 5 to position 1
|
|
||||||
swap letter h with letter e
|
|
||||||
rotate based on position of letter a
|
|
||||||
move position 6 to position 2
|
|
||||||
reverse positions 0 through 1
|
|
||||||
rotate based on position of letter h
|
|
||||||
rotate based on position of letter g
|
|
||||||
rotate based on position of letter h
|
|
||||||
reverse positions 4 through 7
|
|
||||||
swap letter a with letter f
|
|
||||||
swap position 2 with position 7
|
|
||||||
move position 7 to position 5
|
|
||||||
reverse positions 0 through 5
|
|
||||||
rotate based on position of letter f
|
|
||||||
rotate right 4 steps
|
|
||||||
swap position 3 with position 0
|
|
||||||
move position 1 to position 2
|
|
||||||
reverse positions 4 through 6
|
|
||||||
swap position 3 with position 5
|
|
||||||
swap letter a with letter c
|
|
||||||
swap position 5 with position 2
|
|
||||||
swap position 7 with position 2
|
|
||||||
move position 2 to position 5
|
|
||||||
rotate based on position of letter h
|
|
||||||
rotate right 2 steps
|
|
||||||
swap position 3 with position 4
|
|
||||||
move position 0 to position 1
|
|
||||||
reverse positions 1 through 7
|
|
||||||
reverse positions 1 through 4
|
|
||||||
rotate based on position of letter b
|
|
||||||
rotate right 7 steps
|
|
||||||
rotate left 0 steps
|
|
||||||
swap position 6 with position 1
|
|
||||||
reverse positions 1 through 3
|
|
||||||
reverse positions 0 through 3
|
|
||||||
move position 0 to position 4
|
|
||||||
rotate based on position of letter f
|
|
||||||
reverse positions 0 through 7
|
|
||||||
reverse positions 0 through 1
|
|
||||||
move position 1 to position 7
|
|
||||||
move position 7 to position 6
|
|
||||||
rotate based on position of letter b
|
|
||||||
reverse positions 3 through 5
|
|
||||||
reverse positions 0 through 3
|
|
||||||
swap letter c with letter h
|
|
||||||
reverse positions 3 through 5
|
|
||||||
swap position 3 with position 6
|
|
||||||
swap letter d with letter g
|
|
||||||
move position 5 to position 6
|
|
||||||
swap position 6 with position 2
|
|
||||||
rotate right 5 steps
|
|
||||||
swap letter e with letter g
|
|
||||||
rotate based on position of letter e
|
|
||||||
rotate based on position of letter c
|
|
||||||
swap letter g with letter e
|
|
||||||
rotate based on position of letter b
|
|
||||||
rotate based on position of letter b
|
|
||||||
swap position 0 with position 2
|
|
||||||
move position 6 to position 0
|
|
||||||
move position 5 to position 0
|
|
||||||
rotate left 2 steps
|
|
||||||
move position 0 to position 5
|
|
||||||
rotate left 7 steps
|
|
||||||
swap letter b with letter g
|
|
||||||
rotate based on position of letter d
|
|
||||||
swap letter h with letter e
|
|
||||||
swap letter d with letter c
|
|
||||||
rotate based on position of letter f
|
|
||||||
move position 5 to position 0
|
|
||||||
rotate left 5 steps
|
|
||||||
swap position 0 with position 7
|
|
||||||
swap position 0 with position 3
|
|
||||||
rotate left 4 steps
|
|
||||||
rotate left 1 step
|
|
||||||
rotate right 6 steps
|
|
||||||
swap position 0 with position 1
|
|
||||||
reverse positions 4 through 6
|
|
||||||
reverse positions 4 through 6
|
|
||||||
move position 6 to position 3
|
|
||||||
move position 7 to position 4
|
|
||||||
rotate right 4 steps
|
|
||||||
swap letter g with letter d
|
|
||||||
swap letter c with letter e
|
|
||||||
swap letter e with letter h
|
|
||||||
rotate right 5 steps
|
|
||||||
rotate based on position of letter g
|
|
||||||
rotate based on position of letter g
|
|
||||||
rotate left 3 steps
|
|
||||||
swap letter h with letter g
|
|
||||||
reverse positions 0 through 4
|
|
||||||
rotate right 4 steps
|
|
||||||
move position 6 to position 4
|
|
||||||
rotate based on position of letter c
|
|
||||||
swap position 2 with position 6
|
|
||||||
swap position 7 with position 2
|
|
||||||
rotate right 1 step
|
|
||||||
swap position 3 with position 1
|
|
||||||
swap position 4 with position 6
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Op(enum.StrEnum):
|
|
||||||
SWAP_POSITION = "swap position"
|
|
||||||
SWAP_LETTER = "swap letter"
|
|
||||||
ROTATE_LEFT = "rotate left"
|
|
||||||
ROTATE_RIGHT = "rotate right"
|
|
||||||
ROTATE_BASED = "rotate based"
|
|
||||||
REVERSE_POSITION = "reverse positions"
|
|
||||||
MOVE_POSITION = "move position"
|
|
||||||
|
|
||||||
|
|
||||||
class Instruction(NamedTuple):
|
|
||||||
op: Op
|
|
||||||
x: str
|
|
||||||
y: str | None
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Instruction":
|
|
||||||
split_input = input.split()
|
|
||||||
op = Op(" ".join(split_input[:2]))
|
|
||||||
x: str
|
|
||||||
y: str | None
|
|
||||||
match op:
|
|
||||||
case Op.ROTATE_LEFT | Op.ROTATE_RIGHT:
|
|
||||||
x, y = split_input[2], None
|
|
||||||
case Op.ROTATE_BASED:
|
|
||||||
x, y = split_input[-1], None
|
|
||||||
case _:
|
|
||||||
x, y = split_input[2], split_input[-1]
|
|
||||||
return cls(op, x, y)
|
|
||||||
|
|
||||||
def undo(self, password: str) -> str:
|
|
||||||
letters = list(password)
|
|
||||||
match self.op:
|
|
||||||
case Op.SWAP_POSITION:
|
|
||||||
assert self.y is not None # Sanity check
|
|
||||||
x, y = int(self.x), int(self.y)
|
|
||||||
letters[x], letters[y] = letters[y], letters[x]
|
|
||||||
case Op.SWAP_LETTER:
|
|
||||||
assert self.y is not None # Sanity check
|
|
||||||
x, y = letters.index(self.x), letters.index(self.y)
|
|
||||||
letters[x], letters[y] = letters[y], letters[x]
|
|
||||||
case Op.ROTATE_LEFT:
|
|
||||||
x = int(self.x)
|
|
||||||
x %= len(letters)
|
|
||||||
letters = letters[-x:] + letters[:-x]
|
|
||||||
case Op.ROTATE_RIGHT:
|
|
||||||
x = int(self.x)
|
|
||||||
x %= len(letters)
|
|
||||||
letters = letters[x:] + letters[:x]
|
|
||||||
case Op.ROTATE_BASED:
|
|
||||||
# original: 0 1 2 3 4 5 6 7
|
|
||||||
# result: 1 3 5 7 2 4 6 0
|
|
||||||
# rotation: 1 2 3 4 6 7 0 1
|
|
||||||
x = {
|
|
||||||
1: 1,
|
|
||||||
3: 2,
|
|
||||||
5: 3,
|
|
||||||
7: 4,
|
|
||||||
2: 6,
|
|
||||||
4: 7,
|
|
||||||
6: 0,
|
|
||||||
0: 1,
|
|
||||||
}[letters.index(self.x)]
|
|
||||||
letters = letters[x:] + letters[:x]
|
|
||||||
case Op.REVERSE_POSITION:
|
|
||||||
assert self.y is not None # Sanity check
|
|
||||||
x, y = int(self.x), int(self.y)
|
|
||||||
letters[x : y + 1] = letters[x : y + 1][::-1]
|
|
||||||
case Op.MOVE_POSITION:
|
|
||||||
assert self.y is not None # Sanity check
|
|
||||||
x, y = int(self.x), int(self.y)
|
|
||||||
letter = letters.pop(y)
|
|
||||||
letters.insert(x, letter)
|
|
||||||
return "".join(letters)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> str:
|
|
||||||
def parse(input: str) -> list[Instruction]:
|
|
||||||
return [Instruction.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
instructions = parse(input)
|
|
||||||
password = "fbgdceah"
|
|
||||||
for instruction in instructions[::-1]:
|
|
||||||
password = instruction.undo(password)
|
|
||||||
return password
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
||||||
swap letter a with letter d
|
|
||||||
move position 6 to position 4
|
|
||||||
move position 5 to position 1
|
|
||||||
swap letter h with letter e
|
|
||||||
rotate based on position of letter a
|
|
||||||
move position 6 to position 2
|
|
||||||
reverse positions 0 through 1
|
|
||||||
rotate based on position of letter h
|
|
||||||
rotate based on position of letter g
|
|
||||||
rotate based on position of letter h
|
|
||||||
reverse positions 4 through 7
|
|
||||||
swap letter a with letter f
|
|
||||||
swap position 2 with position 7
|
|
||||||
move position 7 to position 5
|
|
||||||
reverse positions 0 through 5
|
|
||||||
rotate based on position of letter f
|
|
||||||
rotate right 4 steps
|
|
||||||
swap position 3 with position 0
|
|
||||||
move position 1 to position 2
|
|
||||||
reverse positions 4 through 6
|
|
||||||
swap position 3 with position 5
|
|
||||||
swap letter a with letter c
|
|
||||||
swap position 5 with position 2
|
|
||||||
swap position 7 with position 2
|
|
||||||
move position 2 to position 5
|
|
||||||
rotate based on position of letter h
|
|
||||||
rotate right 2 steps
|
|
||||||
swap position 3 with position 4
|
|
||||||
move position 0 to position 1
|
|
||||||
reverse positions 1 through 7
|
|
||||||
reverse positions 1 through 4
|
|
||||||
rotate based on position of letter b
|
|
||||||
rotate right 7 steps
|
|
||||||
rotate left 0 steps
|
|
||||||
swap position 6 with position 1
|
|
||||||
reverse positions 1 through 3
|
|
||||||
reverse positions 0 through 3
|
|
||||||
move position 0 to position 4
|
|
||||||
rotate based on position of letter f
|
|
||||||
reverse positions 0 through 7
|
|
||||||
reverse positions 0 through 1
|
|
||||||
move position 1 to position 7
|
|
||||||
move position 7 to position 6
|
|
||||||
rotate based on position of letter b
|
|
||||||
reverse positions 3 through 5
|
|
||||||
reverse positions 0 through 3
|
|
||||||
swap letter c with letter h
|
|
||||||
reverse positions 3 through 5
|
|
||||||
swap position 3 with position 6
|
|
||||||
swap letter d with letter g
|
|
||||||
move position 5 to position 6
|
|
||||||
swap position 6 with position 2
|
|
||||||
rotate right 5 steps
|
|
||||||
swap letter e with letter g
|
|
||||||
rotate based on position of letter e
|
|
||||||
rotate based on position of letter c
|
|
||||||
swap letter g with letter e
|
|
||||||
rotate based on position of letter b
|
|
||||||
rotate based on position of letter b
|
|
||||||
swap position 0 with position 2
|
|
||||||
move position 6 to position 0
|
|
||||||
move position 5 to position 0
|
|
||||||
rotate left 2 steps
|
|
||||||
move position 0 to position 5
|
|
||||||
rotate left 7 steps
|
|
||||||
swap letter b with letter g
|
|
||||||
rotate based on position of letter d
|
|
||||||
swap letter h with letter e
|
|
||||||
swap letter d with letter c
|
|
||||||
rotate based on position of letter f
|
|
||||||
move position 5 to position 0
|
|
||||||
rotate left 5 steps
|
|
||||||
swap position 0 with position 7
|
|
||||||
swap position 0 with position 3
|
|
||||||
rotate left 4 steps
|
|
||||||
rotate left 1 step
|
|
||||||
rotate right 6 steps
|
|
||||||
swap position 0 with position 1
|
|
||||||
reverse positions 4 through 6
|
|
||||||
reverse positions 4 through 6
|
|
||||||
move position 6 to position 3
|
|
||||||
move position 7 to position 4
|
|
||||||
rotate right 4 steps
|
|
||||||
swap letter g with letter d
|
|
||||||
swap letter c with letter e
|
|
||||||
swap letter e with letter h
|
|
||||||
rotate right 5 steps
|
|
||||||
rotate based on position of letter g
|
|
||||||
rotate based on position of letter g
|
|
||||||
rotate left 3 steps
|
|
||||||
swap letter h with letter g
|
|
||||||
reverse positions 0 through 4
|
|
||||||
rotate right 4 steps
|
|
||||||
move position 6 to position 4
|
|
||||||
rotate based on position of letter c
|
|
||||||
swap position 2 with position 6
|
|
||||||
swap position 7 with position 2
|
|
||||||
rotate right 1 step
|
|
||||||
swap position 3 with position 1
|
|
||||||
swap position 4 with position 6
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
class Filesystem(NamedTuple):
|
|
||||||
size: int
|
|
||||||
used: int
|
|
||||||
|
|
||||||
@property
|
|
||||||
def avail(self) -> int:
|
|
||||||
return self.size - self.used
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse_line(input: str) -> tuple[Point, Filesystem]:
|
|
||||||
raw_fs, raw_size, raw_used, raw_avail, _ = input.split()
|
|
||||||
size = int(raw_size.removesuffix("T"))
|
|
||||||
used = int(raw_used.removesuffix("T"))
|
|
||||||
avail = int(raw_avail.removesuffix("T"))
|
|
||||||
assert size == (used + avail) # Sanity check
|
|
||||||
*_, x, y = raw_fs.split("-")
|
|
||||||
return Point(int(x[1:]), int(y[1:])), Filesystem(size, used)
|
|
||||||
|
|
||||||
def parse(input: str) -> dict[Point, Filesystem]:
|
|
||||||
return {node: fs for node, fs in map(parse_line, input.splitlines()[2:])}
|
|
||||||
|
|
||||||
df = parse(input)
|
|
||||||
return sum(
|
|
||||||
a.used <= b.avail
|
|
||||||
for a, b in itertools.permutations(df.values(), 2)
|
|
||||||
if a.used > 0
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,877 +0,0 @@
|
||||||
root@ebhq-gridcenter# df -h
|
|
||||||
Filesystem Size Used Avail Use%
|
|
||||||
/dev/grid/node-x0-y0 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x0-y1 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x0-y2 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x0-y3 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x0-y4 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x0-y5 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x0-y6 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x0-y7 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x0-y8 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x0-y9 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x0-y10 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x0-y11 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x0-y12 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x0-y13 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x0-y14 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x0-y15 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x0-y16 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x0-y17 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x0-y18 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x0-y19 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x0-y20 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x0-y21 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x0-y22 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x0-y23 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x0-y24 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x1-y0 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x1-y1 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x1-y2 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x1-y3 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x1-y4 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x1-y5 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x1-y6 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x1-y7 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x1-y8 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x1-y9 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x1-y10 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x1-y11 91T 66T 25T 72%
|
|
||||||
/dev/grid/node-x1-y12 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x1-y13 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x1-y14 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x1-y15 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x1-y16 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x1-y17 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x1-y18 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x1-y19 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x1-y20 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x1-y21 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x1-y22 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x1-y23 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x1-y24 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x2-y0 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x2-y1 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x2-y2 85T 64T 21T 75%
|
|
||||||
/dev/grid/node-x2-y3 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x2-y4 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x2-y5 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x2-y6 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x2-y7 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x2-y8 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x2-y9 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x2-y10 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x2-y11 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x2-y12 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x2-y13 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x2-y14 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x2-y15 91T 66T 25T 72%
|
|
||||||
/dev/grid/node-x2-y16 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x2-y17 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x2-y18 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x2-y19 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x2-y20 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x2-y21 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x2-y22 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x2-y23 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x2-y24 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x3-y0 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x3-y1 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x3-y2 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x3-y3 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x3-y4 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x3-y5 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x3-y6 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x3-y7 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x3-y8 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x3-y9 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x3-y10 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x3-y11 93T 67T 26T 72%
|
|
||||||
/dev/grid/node-x3-y12 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x3-y13 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x3-y14 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x3-y15 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x3-y16 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x3-y17 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x3-y18 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x3-y19 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x3-y20 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x3-y21 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x3-y22 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x3-y23 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x3-y24 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x4-y0 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x4-y1 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x4-y2 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x4-y3 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x4-y4 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x4-y5 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x4-y6 91T 66T 25T 72%
|
|
||||||
/dev/grid/node-x4-y7 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x4-y8 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x4-y9 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x4-y10 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x4-y11 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x4-y12 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x4-y13 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x4-y14 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x4-y15 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x4-y16 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x4-y17 85T 65T 20T 76%
|
|
||||||
/dev/grid/node-x4-y18 94T 72T 22T 76%
|
|
||||||
/dev/grid/node-x4-y19 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x4-y20 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x4-y21 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x4-y22 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x4-y23 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x4-y24 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x5-y0 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x5-y1 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x5-y2 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x5-y3 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x5-y4 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x5-y5 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x5-y6 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x5-y7 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x5-y8 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x5-y9 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x5-y10 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x5-y11 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x5-y12 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x5-y13 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x5-y14 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x5-y15 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x5-y16 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x5-y17 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x5-y18 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x5-y19 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x5-y20 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x5-y21 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x5-y22 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x5-y23 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x5-y24 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x6-y0 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x6-y1 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x6-y2 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x6-y3 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x6-y4 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x6-y5 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x6-y6 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x6-y7 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x6-y8 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x6-y9 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x6-y10 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x6-y11 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x6-y12 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x6-y13 93T 67T 26T 72%
|
|
||||||
/dev/grid/node-x6-y14 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x6-y15 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x6-y16 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x6-y17 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x6-y18 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x6-y19 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x6-y20 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x6-y21 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x6-y22 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x6-y23 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x6-y24 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x7-y0 87T 66T 21T 75%
|
|
||||||
/dev/grid/node-x7-y1 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x7-y2 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x7-y3 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x7-y4 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x7-y5 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x7-y6 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x7-y7 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x7-y8 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x7-y9 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x7-y10 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x7-y11 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x7-y12 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x7-y13 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x7-y14 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x7-y15 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x7-y16 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x7-y17 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x7-y18 87T 70T 17T 80%
|
|
||||||
/dev/grid/node-x7-y19 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x7-y20 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x7-y21 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x7-y22 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x7-y23 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x7-y24 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x8-y0 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x8-y1 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x8-y2 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x8-y3 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x8-y4 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x8-y5 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x8-y6 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x8-y7 87T 66T 21T 75%
|
|
||||||
/dev/grid/node-x8-y8 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x8-y9 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x8-y10 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x8-y11 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x8-y12 91T 66T 25T 72%
|
|
||||||
/dev/grid/node-x8-y13 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x8-y14 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x8-y15 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x8-y16 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x8-y17 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x8-y18 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x8-y19 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x8-y20 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x8-y21 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x8-y22 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x8-y23 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x8-y24 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x9-y0 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x9-y1 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x9-y2 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x9-y3 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x9-y4 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x9-y5 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x9-y6 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x9-y7 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x9-y8 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x9-y9 85T 65T 20T 76%
|
|
||||||
/dev/grid/node-x9-y10 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x9-y11 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x9-y12 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x9-y13 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x9-y14 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x9-y15 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x9-y16 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x9-y17 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x9-y18 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x9-y19 85T 64T 21T 75%
|
|
||||||
/dev/grid/node-x9-y20 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x9-y21 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x9-y22 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x9-y23 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x9-y24 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x10-y0 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x10-y1 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x10-y2 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x10-y3 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x10-y4 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x10-y5 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x10-y6 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x10-y7 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x10-y8 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x10-y9 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x10-y10 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x10-y11 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x10-y12 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x10-y13 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x10-y14 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x10-y15 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x10-y16 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x10-y17 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x10-y18 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x10-y19 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x10-y20 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x10-y21 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x10-y22 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x10-y23 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x10-y24 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x11-y0 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x11-y1 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x11-y2 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x11-y3 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x11-y4 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x11-y5 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x11-y6 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x11-y7 86T 72T 14T 83%
|
|
||||||
/dev/grid/node-x11-y8 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x11-y9 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x11-y10 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x11-y11 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x11-y12 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x11-y13 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x11-y14 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x11-y15 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x11-y16 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x11-y17 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x11-y18 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x11-y19 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x11-y20 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x11-y21 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x11-y22 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x11-y23 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x11-y24 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x12-y0 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x12-y1 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x12-y2 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x12-y3 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x12-y4 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x12-y5 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x12-y6 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x12-y7 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x12-y8 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x12-y9 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x12-y10 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x12-y11 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x12-y12 87T 70T 17T 80%
|
|
||||||
/dev/grid/node-x12-y13 86T 72T 14T 83%
|
|
||||||
/dev/grid/node-x12-y14 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x12-y15 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x12-y16 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x12-y17 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x12-y18 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x12-y19 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x12-y20 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x12-y21 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x12-y22 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x12-y23 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x12-y24 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x13-y0 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x13-y1 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x13-y2 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x13-y3 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x13-y4 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x13-y5 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x13-y6 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x13-y7 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x13-y8 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x13-y9 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x13-y10 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x13-y11 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x13-y12 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x13-y13 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x13-y14 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x13-y15 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x13-y16 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x13-y17 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x13-y18 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x13-y19 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x13-y20 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x13-y21 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x13-y22 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x13-y23 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x13-y24 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x14-y0 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x14-y1 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x14-y2 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x14-y3 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x14-y4 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x14-y5 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x14-y6 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x14-y7 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x14-y8 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x14-y9 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x14-y10 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x14-y11 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x14-y12 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x14-y13 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x14-y14 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x14-y15 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x14-y16 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x14-y17 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x14-y18 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x14-y19 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x14-y20 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x14-y21 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x14-y22 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x14-y23 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x14-y24 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x15-y0 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x15-y1 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x15-y2 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x15-y3 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x15-y4 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x15-y5 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x15-y6 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x15-y7 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x15-y8 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x15-y9 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x15-y10 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x15-y11 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x15-y12 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x15-y13 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x15-y14 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x15-y15 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x15-y16 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x15-y17 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x15-y18 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x15-y19 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x15-y20 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x15-y21 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x15-y22 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x15-y23 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x15-y24 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x16-y0 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x16-y1 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x16-y2 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x16-y3 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x16-y4 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x16-y5 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x16-y6 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x16-y7 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x16-y8 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x16-y9 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x16-y10 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x16-y11 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x16-y12 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x16-y13 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x16-y14 94T 72T 22T 76%
|
|
||||||
/dev/grid/node-x16-y15 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x16-y16 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x16-y17 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x16-y18 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x16-y19 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x16-y20 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x16-y21 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x16-y22 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x16-y23 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x16-y24 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x17-y0 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x17-y1 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x17-y2 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x17-y3 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x17-y4 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x17-y5 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x17-y6 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x17-y7 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x17-y8 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x17-y9 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x17-y10 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x17-y11 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x17-y12 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x17-y13 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x17-y14 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x17-y15 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x17-y16 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x17-y17 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x17-y18 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x17-y19 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x17-y20 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x17-y21 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x17-y22 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x17-y23 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x17-y24 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x18-y0 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x18-y1 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x18-y2 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x18-y3 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x18-y4 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x18-y5 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x18-y6 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x18-y7 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x18-y8 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x18-y9 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x18-y10 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x18-y11 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x18-y12 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x18-y13 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x18-y14 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x18-y15 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x18-y16 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x18-y17 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x18-y18 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x18-y19 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x18-y20 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x18-y21 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x18-y22 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x18-y23 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x18-y24 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x19-y0 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x19-y1 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x19-y2 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x19-y3 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x19-y4 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x19-y5 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x19-y6 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x19-y7 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x19-y8 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x19-y9 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x19-y10 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x19-y11 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x19-y12 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x19-y13 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x19-y14 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x19-y15 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x19-y16 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x19-y17 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x19-y18 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x19-y19 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x19-y20 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x19-y21 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x19-y22 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x19-y23 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x19-y24 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x20-y0 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x20-y1 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x20-y2 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x20-y3 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x20-y4 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x20-y5 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x20-y6 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x20-y7 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x20-y8 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x20-y9 91T 71T 20T 78%
|
|
||||||
/dev/grid/node-x20-y10 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x20-y11 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x20-y12 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x20-y13 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x20-y14 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x20-y15 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x20-y16 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x20-y17 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x20-y18 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x20-y19 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x20-y20 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x20-y21 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x20-y22 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x20-y23 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x20-y24 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x21-y0 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x21-y1 85T 65T 20T 76%
|
|
||||||
/dev/grid/node-x21-y2 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x21-y3 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x21-y4 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x21-y5 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x21-y6 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x21-y7 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x21-y8 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x21-y9 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x21-y10 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x21-y11 504T 496T 8T 98%
|
|
||||||
/dev/grid/node-x21-y12 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x21-y13 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x21-y14 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x21-y15 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x21-y16 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x21-y17 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x21-y18 87T 70T 17T 80%
|
|
||||||
/dev/grid/node-x21-y19 85T 64T 21T 75%
|
|
||||||
/dev/grid/node-x21-y20 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x21-y21 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x21-y22 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x21-y23 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x21-y24 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x22-y0 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x22-y1 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x22-y2 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x22-y3 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x22-y4 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x22-y5 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x22-y6 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x22-y7 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x22-y8 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x22-y9 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x22-y10 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x22-y11 508T 492T 16T 96%
|
|
||||||
/dev/grid/node-x22-y12 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x22-y13 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x22-y14 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x22-y15 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x22-y16 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x22-y17 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x22-y18 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x22-y19 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x22-y20 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x22-y21 91T 71T 20T 78%
|
|
||||||
/dev/grid/node-x22-y22 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x22-y23 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x22-y24 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x23-y0 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x23-y1 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x23-y2 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x23-y3 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x23-y4 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x23-y5 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x23-y6 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x23-y7 85T 64T 21T 75%
|
|
||||||
/dev/grid/node-x23-y8 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x23-y9 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x23-y10 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x23-y11 509T 491T 18T 96%
|
|
||||||
/dev/grid/node-x23-y12 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x23-y13 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x23-y14 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x23-y15 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x23-y16 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x23-y17 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x23-y18 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x23-y19 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x23-y20 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x23-y21 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x23-y22 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x23-y23 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x23-y24 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x24-y0 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x24-y1 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x24-y2 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x24-y3 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x24-y4 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x24-y5 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x24-y6 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x24-y7 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x24-y8 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x24-y9 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x24-y10 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x24-y11 503T 492T 11T 97%
|
|
||||||
/dev/grid/node-x24-y12 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x24-y13 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x24-y14 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x24-y15 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x24-y16 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x24-y17 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x24-y18 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x24-y19 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x24-y20 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x24-y21 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x24-y22 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x24-y23 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x24-y24 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x25-y0 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x25-y1 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x25-y2 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x25-y3 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x25-y4 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x25-y5 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x25-y6 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x25-y7 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x25-y8 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x25-y9 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x25-y10 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x25-y11 503T 491T 12T 97%
|
|
||||||
/dev/grid/node-x25-y12 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x25-y13 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x25-y14 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x25-y15 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x25-y16 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x25-y17 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x25-y18 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x25-y19 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x25-y20 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x25-y21 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x25-y22 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x25-y23 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x25-y24 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x26-y0 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x26-y1 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x26-y2 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x26-y3 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x26-y4 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x26-y5 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x26-y6 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x26-y7 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x26-y8 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x26-y9 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x26-y10 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x26-y11 508T 496T 12T 97%
|
|
||||||
/dev/grid/node-x26-y12 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x26-y13 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x26-y14 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x26-y15 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x26-y16 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x26-y17 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x26-y18 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x26-y19 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x26-y20 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x26-y21 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x26-y22 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x26-y23 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x26-y24 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x27-y0 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x27-y1 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x27-y2 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x27-y3 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x27-y4 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x27-y5 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x27-y6 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x27-y7 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x27-y8 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x27-y9 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x27-y10 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x27-y11 501T 494T 7T 98%
|
|
||||||
/dev/grid/node-x27-y12 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x27-y13 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x27-y14 90T 0T 90T 0%
|
|
||||||
/dev/grid/node-x27-y15 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x27-y16 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x27-y17 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x27-y18 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x27-y19 94T 72T 22T 76%
|
|
||||||
/dev/grid/node-x27-y20 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x27-y21 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x27-y22 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x27-y23 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x27-y24 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x28-y0 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x28-y1 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x28-y2 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x28-y3 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x28-y4 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x28-y5 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x28-y6 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x28-y7 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x28-y8 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x28-y9 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x28-y10 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x28-y11 505T 493T 12T 97%
|
|
||||||
/dev/grid/node-x28-y12 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x28-y13 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x28-y14 85T 65T 20T 76%
|
|
||||||
/dev/grid/node-x28-y15 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x28-y16 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x28-y17 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x28-y18 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x28-y19 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x28-y20 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x28-y21 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x28-y22 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x28-y23 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x28-y24 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x29-y0 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x29-y1 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x29-y2 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x29-y3 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x29-y4 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x29-y5 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x29-y6 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x29-y7 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x29-y8 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x29-y9 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x29-y10 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x29-y11 510T 497T 13T 97%
|
|
||||||
/dev/grid/node-x29-y12 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x29-y13 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x29-y14 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x29-y15 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x29-y16 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x29-y17 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x29-y18 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x29-y19 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x29-y20 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x29-y21 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x29-y22 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x29-y23 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x29-y24 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x30-y0 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x30-y1 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x30-y2 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x30-y3 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x30-y4 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x30-y5 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x30-y6 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x30-y7 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x30-y8 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x30-y9 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x30-y10 87T 66T 21T 75%
|
|
||||||
/dev/grid/node-x30-y11 501T 490T 11T 97%
|
|
||||||
/dev/grid/node-x30-y12 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x30-y13 91T 71T 20T 78%
|
|
||||||
/dev/grid/node-x30-y14 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x30-y15 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x30-y16 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x30-y17 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x30-y18 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x30-y19 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x30-y20 91T 71T 20T 78%
|
|
||||||
/dev/grid/node-x30-y21 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x30-y22 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x30-y23 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x30-y24 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x31-y0 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x31-y1 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x31-y2 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x31-y3 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x31-y4 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x31-y5 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x31-y6 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x31-y7 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x31-y8 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x31-y9 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x31-y10 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x31-y11 506T 494T 12T 97%
|
|
||||||
/dev/grid/node-x31-y12 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x31-y13 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x31-y14 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x31-y15 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x31-y16 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x31-y17 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x31-y18 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x31-y19 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x31-y20 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x31-y21 86T 72T 14T 83%
|
|
||||||
/dev/grid/node-x31-y22 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x31-y23 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x31-y24 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x32-y0 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x32-y1 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x32-y2 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x32-y3 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x32-y4 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x32-y5 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x32-y6 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x32-y7 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x32-y8 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x32-y9 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x32-y10 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x32-y11 508T 491T 17T 96%
|
|
||||||
/dev/grid/node-x32-y12 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x32-y13 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x32-y14 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x32-y15 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x32-y16 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x32-y17 87T 66T 21T 75%
|
|
||||||
/dev/grid/node-x32-y18 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x32-y19 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x32-y20 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x32-y21 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x32-y22 93T 67T 26T 72%
|
|
||||||
/dev/grid/node-x32-y23 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x32-y24 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x33-y0 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x33-y1 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x33-y2 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x33-y3 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x33-y4 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x33-y5 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x33-y6 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x33-y7 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x33-y8 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x33-y9 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x33-y10 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x33-y11 507T 491T 16T 96%
|
|
||||||
/dev/grid/node-x33-y12 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x33-y13 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x33-y14 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x33-y15 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x33-y16 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x33-y17 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x33-y18 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x33-y19 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x33-y20 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x33-y21 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x33-y22 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x33-y23 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x33-y24 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x34-y0 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x34-y1 93T 67T 26T 72%
|
|
||||||
/dev/grid/node-x34-y2 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x34-y3 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x34-y4 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x34-y5 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x34-y6 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x34-y7 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x34-y8 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x34-y9 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x34-y10 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x34-y11 504T 496T 8T 98%
|
|
||||||
/dev/grid/node-x34-y12 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x34-y13 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x34-y14 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x34-y15 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x34-y16 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x34-y17 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x34-y18 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x34-y19 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x34-y20 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x34-y21 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x34-y22 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x34-y23 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x34-y24 92T 71T 21T 77%
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import heapq
|
|
||||||
import sys
|
|
||||||
from collections.abc import Iterable
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
class Filesystem(NamedTuple):
|
|
||||||
size: int
|
|
||||||
used: int
|
|
||||||
|
|
||||||
@property
|
|
||||||
def avail(self) -> int:
|
|
||||||
return self.size - self.used
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse_line(input: str) -> tuple[Point, Filesystem]:
|
|
||||||
raw_fs, raw_size, raw_used, raw_avail, _ = input.split()
|
|
||||||
size = int(raw_size.removesuffix("T"))
|
|
||||||
used = int(raw_used.removesuffix("T"))
|
|
||||||
avail = int(raw_avail.removesuffix("T"))
|
|
||||||
assert size == (used + avail) # Sanity check
|
|
||||||
*_, x, y = raw_fs.split("-")
|
|
||||||
return Point(int(x[1:]), int(y[1:])), Filesystem(size, used)
|
|
||||||
|
|
||||||
def parse(input: str) -> dict[Point, Filesystem]:
|
|
||||||
return {node: fs for node, fs in map(parse_line, input.splitlines()[2:])}
|
|
||||||
|
|
||||||
def neighbours(p: Point) -> Iterable[Point]:
|
|
||||||
for dx, dy in (
|
|
||||||
(-1, 0),
|
|
||||||
(1, 0),
|
|
||||||
(0, -1),
|
|
||||||
(0, 1),
|
|
||||||
):
|
|
||||||
yield Point(p.x + dx, p.y + dy)
|
|
||||||
|
|
||||||
def dijkstra(start: Point, end: Point, points: set[Point]) -> int:
|
|
||||||
# Priority queue of (distance, point)
|
|
||||||
queue = [(0, start)]
|
|
||||||
seen: set[Point] = set()
|
|
||||||
|
|
||||||
while len(queue) > 0:
|
|
||||||
dist, p = heapq.heappop(queue)
|
|
||||||
if p == end:
|
|
||||||
return dist
|
|
||||||
# We must have seen p with a smaller distance before
|
|
||||||
if p in seen:
|
|
||||||
continue
|
|
||||||
# First time encountering p, must be the smallest distance to it
|
|
||||||
seen.add(p)
|
|
||||||
# Add all neighbours to be visited
|
|
||||||
for n in neighbours(p):
|
|
||||||
if n not in points:
|
|
||||||
continue
|
|
||||||
heapq.heappush(queue, (dist + 1, n))
|
|
||||||
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
def dist(p: Point, other: Point) -> int:
|
|
||||||
return abs(p.x - other.x) + abs(p.y - other.y)
|
|
||||||
|
|
||||||
def has_angle(p: Point, other: Point) -> int:
|
|
||||||
return p.x != other.x and p.y != other.y
|
|
||||||
|
|
||||||
def data_migration(start: Point, end: Point) -> int:
|
|
||||||
# Moving the data once is a 5 step move, unless it is on an angle, where it is 3
|
|
||||||
# Assumes there's no wall between either points
|
|
||||||
return 5 * dist(start, end) - 2 * has_angle(start, end)
|
|
||||||
|
|
||||||
df = parse(input)
|
|
||||||
# The data moves from the goal to us, hence `start` and `end` are "reversed"
|
|
||||||
start = max(p for p in df.keys() if p.y == 0)
|
|
||||||
end = Point(0, 0)
|
|
||||||
# The "hole" must be used to migrate the data to us
|
|
||||||
hole = next(p for p, fs in df.items() if fs.used == 0)
|
|
||||||
# The "walls" are nodes which are too big to move, effectively blocking us
|
|
||||||
walls = {p for p, fs in df.items() if fs.used > df[hole].avail}
|
|
||||||
accessible = df.keys() - walls
|
|
||||||
|
|
||||||
return min(
|
|
||||||
dijkstra(hole, n, accessible) + 1 + data_migration(n, end)
|
|
||||||
for n in neighbours(start)
|
|
||||||
if n in accessible
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,877 +0,0 @@
|
||||||
root@ebhq-gridcenter# df -h
|
|
||||||
Filesystem Size Used Avail Use%
|
|
||||||
/dev/grid/node-x0-y0 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x0-y1 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x0-y2 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x0-y3 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x0-y4 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x0-y5 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x0-y6 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x0-y7 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x0-y8 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x0-y9 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x0-y10 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x0-y11 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x0-y12 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x0-y13 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x0-y14 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x0-y15 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x0-y16 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x0-y17 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x0-y18 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x0-y19 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x0-y20 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x0-y21 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x0-y22 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x0-y23 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x0-y24 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x1-y0 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x1-y1 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x1-y2 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x1-y3 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x1-y4 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x1-y5 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x1-y6 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x1-y7 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x1-y8 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x1-y9 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x1-y10 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x1-y11 91T 66T 25T 72%
|
|
||||||
/dev/grid/node-x1-y12 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x1-y13 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x1-y14 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x1-y15 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x1-y16 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x1-y17 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x1-y18 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x1-y19 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x1-y20 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x1-y21 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x1-y22 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x1-y23 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x1-y24 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x2-y0 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x2-y1 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x2-y2 85T 64T 21T 75%
|
|
||||||
/dev/grid/node-x2-y3 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x2-y4 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x2-y5 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x2-y6 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x2-y7 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x2-y8 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x2-y9 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x2-y10 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x2-y11 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x2-y12 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x2-y13 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x2-y14 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x2-y15 91T 66T 25T 72%
|
|
||||||
/dev/grid/node-x2-y16 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x2-y17 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x2-y18 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x2-y19 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x2-y20 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x2-y21 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x2-y22 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x2-y23 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x2-y24 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x3-y0 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x3-y1 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x3-y2 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x3-y3 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x3-y4 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x3-y5 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x3-y6 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x3-y7 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x3-y8 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x3-y9 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x3-y10 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x3-y11 93T 67T 26T 72%
|
|
||||||
/dev/grid/node-x3-y12 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x3-y13 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x3-y14 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x3-y15 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x3-y16 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x3-y17 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x3-y18 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x3-y19 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x3-y20 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x3-y21 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x3-y22 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x3-y23 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x3-y24 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x4-y0 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x4-y1 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x4-y2 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x4-y3 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x4-y4 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x4-y5 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x4-y6 91T 66T 25T 72%
|
|
||||||
/dev/grid/node-x4-y7 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x4-y8 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x4-y9 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x4-y10 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x4-y11 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x4-y12 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x4-y13 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x4-y14 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x4-y15 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x4-y16 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x4-y17 85T 65T 20T 76%
|
|
||||||
/dev/grid/node-x4-y18 94T 72T 22T 76%
|
|
||||||
/dev/grid/node-x4-y19 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x4-y20 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x4-y21 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x4-y22 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x4-y23 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x4-y24 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x5-y0 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x5-y1 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x5-y2 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x5-y3 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x5-y4 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x5-y5 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x5-y6 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x5-y7 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x5-y8 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x5-y9 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x5-y10 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x5-y11 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x5-y12 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x5-y13 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x5-y14 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x5-y15 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x5-y16 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x5-y17 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x5-y18 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x5-y19 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x5-y20 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x5-y21 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x5-y22 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x5-y23 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x5-y24 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x6-y0 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x6-y1 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x6-y2 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x6-y3 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x6-y4 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x6-y5 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x6-y6 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x6-y7 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x6-y8 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x6-y9 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x6-y10 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x6-y11 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x6-y12 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x6-y13 93T 67T 26T 72%
|
|
||||||
/dev/grid/node-x6-y14 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x6-y15 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x6-y16 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x6-y17 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x6-y18 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x6-y19 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x6-y20 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x6-y21 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x6-y22 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x6-y23 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x6-y24 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x7-y0 87T 66T 21T 75%
|
|
||||||
/dev/grid/node-x7-y1 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x7-y2 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x7-y3 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x7-y4 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x7-y5 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x7-y6 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x7-y7 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x7-y8 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x7-y9 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x7-y10 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x7-y11 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x7-y12 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x7-y13 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x7-y14 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x7-y15 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x7-y16 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x7-y17 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x7-y18 87T 70T 17T 80%
|
|
||||||
/dev/grid/node-x7-y19 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x7-y20 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x7-y21 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x7-y22 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x7-y23 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x7-y24 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x8-y0 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x8-y1 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x8-y2 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x8-y3 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x8-y4 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x8-y5 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x8-y6 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x8-y7 87T 66T 21T 75%
|
|
||||||
/dev/grid/node-x8-y8 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x8-y9 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x8-y10 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x8-y11 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x8-y12 91T 66T 25T 72%
|
|
||||||
/dev/grid/node-x8-y13 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x8-y14 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x8-y15 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x8-y16 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x8-y17 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x8-y18 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x8-y19 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x8-y20 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x8-y21 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x8-y22 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x8-y23 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x8-y24 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x9-y0 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x9-y1 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x9-y2 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x9-y3 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x9-y4 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x9-y5 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x9-y6 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x9-y7 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x9-y8 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x9-y9 85T 65T 20T 76%
|
|
||||||
/dev/grid/node-x9-y10 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x9-y11 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x9-y12 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x9-y13 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x9-y14 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x9-y15 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x9-y16 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x9-y17 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x9-y18 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x9-y19 85T 64T 21T 75%
|
|
||||||
/dev/grid/node-x9-y20 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x9-y21 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x9-y22 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x9-y23 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x9-y24 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x10-y0 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x10-y1 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x10-y2 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x10-y3 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x10-y4 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x10-y5 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x10-y6 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x10-y7 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x10-y8 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x10-y9 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x10-y10 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x10-y11 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x10-y12 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x10-y13 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x10-y14 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x10-y15 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x10-y16 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x10-y17 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x10-y18 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x10-y19 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x10-y20 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x10-y21 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x10-y22 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x10-y23 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x10-y24 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x11-y0 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x11-y1 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x11-y2 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x11-y3 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x11-y4 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x11-y5 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x11-y6 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x11-y7 86T 72T 14T 83%
|
|
||||||
/dev/grid/node-x11-y8 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x11-y9 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x11-y10 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x11-y11 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x11-y12 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x11-y13 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x11-y14 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x11-y15 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x11-y16 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x11-y17 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x11-y18 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x11-y19 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x11-y20 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x11-y21 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x11-y22 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x11-y23 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x11-y24 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x12-y0 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x12-y1 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x12-y2 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x12-y3 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x12-y4 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x12-y5 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x12-y6 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x12-y7 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x12-y8 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x12-y9 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x12-y10 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x12-y11 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x12-y12 87T 70T 17T 80%
|
|
||||||
/dev/grid/node-x12-y13 86T 72T 14T 83%
|
|
||||||
/dev/grid/node-x12-y14 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x12-y15 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x12-y16 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x12-y17 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x12-y18 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x12-y19 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x12-y20 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x12-y21 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x12-y22 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x12-y23 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x12-y24 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x13-y0 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x13-y1 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x13-y2 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x13-y3 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x13-y4 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x13-y5 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x13-y6 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x13-y7 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x13-y8 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x13-y9 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x13-y10 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x13-y11 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x13-y12 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x13-y13 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x13-y14 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x13-y15 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x13-y16 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x13-y17 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x13-y18 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x13-y19 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x13-y20 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x13-y21 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x13-y22 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x13-y23 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x13-y24 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x14-y0 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x14-y1 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x14-y2 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x14-y3 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x14-y4 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x14-y5 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x14-y6 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x14-y7 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x14-y8 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x14-y9 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x14-y10 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x14-y11 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x14-y12 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x14-y13 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x14-y14 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x14-y15 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x14-y16 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x14-y17 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x14-y18 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x14-y19 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x14-y20 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x14-y21 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x14-y22 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x14-y23 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x14-y24 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x15-y0 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x15-y1 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x15-y2 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x15-y3 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x15-y4 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x15-y5 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x15-y6 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x15-y7 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x15-y8 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x15-y9 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x15-y10 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x15-y11 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x15-y12 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x15-y13 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x15-y14 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x15-y15 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x15-y16 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x15-y17 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x15-y18 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x15-y19 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x15-y20 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x15-y21 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x15-y22 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x15-y23 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x15-y24 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x16-y0 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x16-y1 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x16-y2 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x16-y3 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x16-y4 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x16-y5 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x16-y6 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x16-y7 88T 64T 24T 72%
|
|
||||||
/dev/grid/node-x16-y8 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x16-y9 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x16-y10 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x16-y11 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x16-y12 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x16-y13 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x16-y14 94T 72T 22T 76%
|
|
||||||
/dev/grid/node-x16-y15 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x16-y16 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x16-y17 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x16-y18 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x16-y19 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x16-y20 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x16-y21 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x16-y22 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x16-y23 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x16-y24 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x17-y0 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x17-y1 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x17-y2 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x17-y3 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x17-y4 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x17-y5 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x17-y6 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x17-y7 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x17-y8 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x17-y9 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x17-y10 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x17-y11 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x17-y12 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x17-y13 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x17-y14 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x17-y15 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x17-y16 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x17-y17 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x17-y18 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x17-y19 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x17-y20 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x17-y21 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x17-y22 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x17-y23 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x17-y24 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x18-y0 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x18-y1 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x18-y2 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x18-y3 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x18-y4 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x18-y5 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x18-y6 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x18-y7 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x18-y8 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x18-y9 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x18-y10 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x18-y11 90T 68T 22T 75%
|
|
||||||
/dev/grid/node-x18-y12 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x18-y13 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x18-y14 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x18-y15 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x18-y16 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x18-y17 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x18-y18 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x18-y19 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x18-y20 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x18-y21 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x18-y22 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x18-y23 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x18-y24 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x19-y0 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x19-y1 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x19-y2 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x19-y3 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x19-y4 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x19-y5 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x19-y6 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x19-y7 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x19-y8 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x19-y9 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x19-y10 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x19-y11 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x19-y12 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x19-y13 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x19-y14 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x19-y15 92T 73T 19T 79%
|
|
||||||
/dev/grid/node-x19-y16 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x19-y17 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x19-y18 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x19-y19 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x19-y20 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x19-y21 94T 67T 27T 71%
|
|
||||||
/dev/grid/node-x19-y22 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x19-y23 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x19-y24 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x20-y0 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x20-y1 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x20-y2 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x20-y3 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x20-y4 91T 64T 27T 70%
|
|
||||||
/dev/grid/node-x20-y5 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x20-y6 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x20-y7 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x20-y8 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x20-y9 91T 71T 20T 78%
|
|
||||||
/dev/grid/node-x20-y10 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x20-y11 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x20-y12 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x20-y13 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x20-y14 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x20-y15 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x20-y16 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x20-y17 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x20-y18 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x20-y19 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x20-y20 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x20-y21 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x20-y22 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x20-y23 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x20-y24 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x21-y0 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x21-y1 85T 65T 20T 76%
|
|
||||||
/dev/grid/node-x21-y2 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x21-y3 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x21-y4 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x21-y5 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x21-y6 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x21-y7 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x21-y8 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x21-y9 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x21-y10 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x21-y11 504T 496T 8T 98%
|
|
||||||
/dev/grid/node-x21-y12 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x21-y13 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x21-y14 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x21-y15 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x21-y16 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x21-y17 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x21-y18 87T 70T 17T 80%
|
|
||||||
/dev/grid/node-x21-y19 85T 64T 21T 75%
|
|
||||||
/dev/grid/node-x21-y20 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x21-y21 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x21-y22 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x21-y23 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x21-y24 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x22-y0 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x22-y1 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x22-y2 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x22-y3 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x22-y4 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x22-y5 87T 67T 20T 77%
|
|
||||||
/dev/grid/node-x22-y6 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x22-y7 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x22-y8 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x22-y9 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x22-y10 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x22-y11 508T 492T 16T 96%
|
|
||||||
/dev/grid/node-x22-y12 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x22-y13 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x22-y14 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x22-y15 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x22-y16 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x22-y17 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x22-y18 92T 65T 27T 70%
|
|
||||||
/dev/grid/node-x22-y19 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x22-y20 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x22-y21 91T 71T 20T 78%
|
|
||||||
/dev/grid/node-x22-y22 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x22-y23 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x22-y24 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x23-y0 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x23-y1 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x23-y2 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x23-y3 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x23-y4 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x23-y5 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x23-y6 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x23-y7 85T 64T 21T 75%
|
|
||||||
/dev/grid/node-x23-y8 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x23-y9 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x23-y10 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x23-y11 509T 491T 18T 96%
|
|
||||||
/dev/grid/node-x23-y12 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x23-y13 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x23-y14 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x23-y15 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x23-y16 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x23-y17 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x23-y18 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x23-y19 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x23-y20 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x23-y21 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x23-y22 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x23-y23 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x23-y24 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x24-y0 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x24-y1 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x24-y2 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x24-y3 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x24-y4 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x24-y5 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x24-y6 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x24-y7 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x24-y8 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x24-y9 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x24-y10 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x24-y11 503T 492T 11T 97%
|
|
||||||
/dev/grid/node-x24-y12 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x24-y13 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x24-y14 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x24-y15 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x24-y16 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x24-y17 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x24-y18 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x24-y19 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x24-y20 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x24-y21 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x24-y22 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x24-y23 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x24-y24 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x25-y0 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x25-y1 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x25-y2 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x25-y3 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x25-y4 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x25-y5 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x25-y6 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x25-y7 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x25-y8 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x25-y9 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x25-y10 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x25-y11 503T 491T 12T 97%
|
|
||||||
/dev/grid/node-x25-y12 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x25-y13 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x25-y14 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x25-y15 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x25-y16 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x25-y17 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x25-y18 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x25-y19 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x25-y20 93T 70T 23T 75%
|
|
||||||
/dev/grid/node-x25-y21 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x25-y22 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x25-y23 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x25-y24 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x26-y0 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x26-y1 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x26-y2 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x26-y3 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x26-y4 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x26-y5 93T 71T 22T 76%
|
|
||||||
/dev/grid/node-x26-y6 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x26-y7 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x26-y8 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x26-y9 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x26-y10 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x26-y11 508T 496T 12T 97%
|
|
||||||
/dev/grid/node-x26-y12 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x26-y13 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x26-y14 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x26-y15 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x26-y16 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x26-y17 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x26-y18 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x26-y19 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x26-y20 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x26-y21 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x26-y22 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x26-y23 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x26-y24 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x27-y0 94T 69T 25T 73%
|
|
||||||
/dev/grid/node-x27-y1 94T 73T 21T 77%
|
|
||||||
/dev/grid/node-x27-y2 91T 67T 24T 73%
|
|
||||||
/dev/grid/node-x27-y3 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x27-y4 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x27-y5 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x27-y6 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x27-y7 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x27-y8 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x27-y9 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x27-y10 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x27-y11 501T 494T 7T 98%
|
|
||||||
/dev/grid/node-x27-y12 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x27-y13 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x27-y14 90T 0T 90T 0%
|
|
||||||
/dev/grid/node-x27-y15 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x27-y16 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x27-y17 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x27-y18 89T 71T 18T 79%
|
|
||||||
/dev/grid/node-x27-y19 94T 72T 22T 76%
|
|
||||||
/dev/grid/node-x27-y20 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x27-y21 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x27-y22 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x27-y23 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x27-y24 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x28-y0 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x28-y1 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x28-y2 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x28-y3 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x28-y4 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x28-y5 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x28-y6 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x28-y7 88T 66T 22T 75%
|
|
||||||
/dev/grid/node-x28-y8 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x28-y9 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x28-y10 89T 69T 20T 77%
|
|
||||||
/dev/grid/node-x28-y11 505T 493T 12T 97%
|
|
||||||
/dev/grid/node-x28-y12 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x28-y13 92T 69T 23T 75%
|
|
||||||
/dev/grid/node-x28-y14 85T 65T 20T 76%
|
|
||||||
/dev/grid/node-x28-y15 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x28-y16 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x28-y17 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x28-y18 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x28-y19 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x28-y20 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x28-y21 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x28-y22 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x28-y23 93T 64T 29T 68%
|
|
||||||
/dev/grid/node-x28-y24 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x29-y0 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x29-y1 89T 67T 22T 75%
|
|
||||||
/dev/grid/node-x29-y2 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x29-y3 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x29-y4 88T 71T 17T 80%
|
|
||||||
/dev/grid/node-x29-y5 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x29-y6 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x29-y7 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x29-y8 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x29-y9 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x29-y10 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x29-y11 510T 497T 13T 97%
|
|
||||||
/dev/grid/node-x29-y12 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x29-y13 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x29-y14 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x29-y15 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x29-y16 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x29-y17 93T 69T 24T 74%
|
|
||||||
/dev/grid/node-x29-y18 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x29-y19 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x29-y20 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x29-y21 92T 71T 21T 77%
|
|
||||||
/dev/grid/node-x29-y22 94T 68T 26T 72%
|
|
||||||
/dev/grid/node-x29-y23 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x29-y24 91T 65T 26T 71%
|
|
||||||
/dev/grid/node-x30-y0 88T 70T 18T 79%
|
|
||||||
/dev/grid/node-x30-y1 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x30-y2 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x30-y3 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x30-y4 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x30-y5 90T 66T 24T 73%
|
|
||||||
/dev/grid/node-x30-y6 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x30-y7 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x30-y8 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x30-y9 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x30-y10 87T 66T 21T 75%
|
|
||||||
/dev/grid/node-x30-y11 501T 490T 11T 97%
|
|
||||||
/dev/grid/node-x30-y12 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x30-y13 91T 71T 20T 78%
|
|
||||||
/dev/grid/node-x30-y14 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x30-y15 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x30-y16 88T 72T 16T 81%
|
|
||||||
/dev/grid/node-x30-y17 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x30-y18 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x30-y19 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x30-y20 91T 71T 20T 78%
|
|
||||||
/dev/grid/node-x30-y21 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x30-y22 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x30-y23 91T 72T 19T 79%
|
|
||||||
/dev/grid/node-x30-y24 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x31-y0 93T 73T 20T 78%
|
|
||||||
/dev/grid/node-x31-y1 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x31-y2 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x31-y3 86T 67T 19T 77%
|
|
||||||
/dev/grid/node-x31-y4 89T 68T 21T 76%
|
|
||||||
/dev/grid/node-x31-y5 91T 70T 21T 76%
|
|
||||||
/dev/grid/node-x31-y6 91T 69T 22T 75%
|
|
||||||
/dev/grid/node-x31-y7 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x31-y8 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x31-y9 87T 65T 22T 74%
|
|
||||||
/dev/grid/node-x31-y10 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x31-y11 506T 494T 12T 97%
|
|
||||||
/dev/grid/node-x31-y12 89T 70T 19T 78%
|
|
||||||
/dev/grid/node-x31-y13 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x31-y14 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x31-y15 90T 72T 18T 80%
|
|
||||||
/dev/grid/node-x31-y16 87T 71T 16T 81%
|
|
||||||
/dev/grid/node-x31-y17 89T 65T 24T 73%
|
|
||||||
/dev/grid/node-x31-y18 86T 68T 18T 79%
|
|
||||||
/dev/grid/node-x31-y19 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x31-y20 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x31-y21 86T 72T 14T 83%
|
|
||||||
/dev/grid/node-x31-y22 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x31-y23 91T 68T 23T 74%
|
|
||||||
/dev/grid/node-x31-y24 87T 68T 19T 78%
|
|
||||||
/dev/grid/node-x32-y0 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x32-y1 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x32-y2 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x32-y3 92T 68T 24T 73%
|
|
||||||
/dev/grid/node-x32-y4 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x32-y5 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x32-y6 85T 72T 13T 84%
|
|
||||||
/dev/grid/node-x32-y7 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x32-y8 85T 69T 16T 81%
|
|
||||||
/dev/grid/node-x32-y9 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x32-y10 86T 64T 22T 74%
|
|
||||||
/dev/grid/node-x32-y11 508T 491T 17T 96%
|
|
||||||
/dev/grid/node-x32-y12 89T 66T 23T 74%
|
|
||||||
/dev/grid/node-x32-y13 89T 73T 16T 82%
|
|
||||||
/dev/grid/node-x32-y14 94T 70T 24T 74%
|
|
||||||
/dev/grid/node-x32-y15 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x32-y16 88T 73T 15T 82%
|
|
||||||
/dev/grid/node-x32-y17 87T 66T 21T 75%
|
|
||||||
/dev/grid/node-x32-y18 85T 73T 12T 85%
|
|
||||||
/dev/grid/node-x32-y19 94T 64T 30T 68%
|
|
||||||
/dev/grid/node-x32-y20 86T 73T 13T 84%
|
|
||||||
/dev/grid/node-x32-y21 93T 72T 21T 77%
|
|
||||||
/dev/grid/node-x32-y22 93T 67T 26T 72%
|
|
||||||
/dev/grid/node-x32-y23 94T 65T 29T 69%
|
|
||||||
/dev/grid/node-x32-y24 85T 71T 14T 83%
|
|
||||||
/dev/grid/node-x33-y0 88T 67T 21T 76%
|
|
||||||
/dev/grid/node-x33-y1 90T 69T 21T 76%
|
|
||||||
/dev/grid/node-x33-y2 85T 68T 17T 80%
|
|
||||||
/dev/grid/node-x33-y3 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x33-y4 93T 66T 27T 70%
|
|
||||||
/dev/grid/node-x33-y5 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x33-y6 85T 67T 18T 78%
|
|
||||||
/dev/grid/node-x33-y7 86T 69T 17T 80%
|
|
||||||
/dev/grid/node-x33-y8 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x33-y9 93T 68T 25T 73%
|
|
||||||
/dev/grid/node-x33-y10 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x33-y11 507T 491T 16T 96%
|
|
||||||
/dev/grid/node-x33-y12 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x33-y13 89T 72T 17T 80%
|
|
||||||
/dev/grid/node-x33-y14 94T 71T 23T 75%
|
|
||||||
/dev/grid/node-x33-y15 86T 66T 20T 76%
|
|
||||||
/dev/grid/node-x33-y16 86T 70T 16T 81%
|
|
||||||
/dev/grid/node-x33-y17 87T 69T 18T 79%
|
|
||||||
/dev/grid/node-x33-y18 89T 64T 25T 71%
|
|
||||||
/dev/grid/node-x33-y19 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x33-y20 86T 71T 15T 82%
|
|
||||||
/dev/grid/node-x33-y21 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x33-y22 86T 65T 21T 75%
|
|
||||||
/dev/grid/node-x33-y23 92T 70T 22T 76%
|
|
||||||
/dev/grid/node-x33-y24 92T 64T 28T 69%
|
|
||||||
/dev/grid/node-x34-y0 88T 69T 19T 78%
|
|
||||||
/dev/grid/node-x34-y1 93T 67T 26T 72%
|
|
||||||
/dev/grid/node-x34-y2 88T 65T 23T 73%
|
|
||||||
/dev/grid/node-x34-y3 90T 71T 19T 78%
|
|
||||||
/dev/grid/node-x34-y4 90T 67T 23T 74%
|
|
||||||
/dev/grid/node-x34-y5 85T 70T 15T 82%
|
|
||||||
/dev/grid/node-x34-y6 87T 72T 15T 82%
|
|
||||||
/dev/grid/node-x34-y7 92T 66T 26T 71%
|
|
||||||
/dev/grid/node-x34-y8 93T 65T 28T 69%
|
|
||||||
/dev/grid/node-x34-y9 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x34-y10 90T 64T 26T 71%
|
|
||||||
/dev/grid/node-x34-y11 504T 496T 8T 98%
|
|
||||||
/dev/grid/node-x34-y12 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x34-y13 92T 67T 25T 72%
|
|
||||||
/dev/grid/node-x34-y14 90T 70T 20T 77%
|
|
||||||
/dev/grid/node-x34-y15 88T 68T 20T 77%
|
|
||||||
/dev/grid/node-x34-y16 87T 73T 14T 83%
|
|
||||||
/dev/grid/node-x34-y17 90T 65T 25T 72%
|
|
||||||
/dev/grid/node-x34-y18 90T 73T 17T 81%
|
|
||||||
/dev/grid/node-x34-y19 91T 73T 18T 80%
|
|
||||||
/dev/grid/node-x34-y20 92T 72T 20T 78%
|
|
||||||
/dev/grid/node-x34-y21 85T 66T 19T 77%
|
|
||||||
/dev/grid/node-x34-y22 94T 66T 28T 70%
|
|
||||||
/dev/grid/node-x34-y23 87T 64T 23T 73%
|
|
||||||
/dev/grid/node-x34-y24 92T 71T 21T 77%
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Op(enum.StrEnum):
|
|
||||||
CPY = "cpy"
|
|
||||||
INC = "inc"
|
|
||||||
DEC = "dec"
|
|
||||||
JNZ = "jnz"
|
|
||||||
TGL = "tgl"
|
|
||||||
|
|
||||||
|
|
||||||
class Instruction(NamedTuple):
|
|
||||||
op: Op
|
|
||||||
x: str
|
|
||||||
y: str | None = None
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Instruction":
|
|
||||||
op, *rest = input.split()
|
|
||||||
return cls(Op(op), *rest)
|
|
||||||
|
|
||||||
def toggle(self) -> "Instruction":
|
|
||||||
if self.y is None:
|
|
||||||
op = Op.DEC if self.op == Op.INC else Op.INC
|
|
||||||
else:
|
|
||||||
op = Op.CPY if self.op == Op.JNZ else Op.JNZ
|
|
||||||
return Instruction(op, self.x, self.y)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Instruction]:
|
|
||||||
return [Instruction.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def resolve(y: str | None, registers: dict[str, int]) -> int:
|
|
||||||
assert y is not None # Sanity check
|
|
||||||
try:
|
|
||||||
return int(y)
|
|
||||||
except ValueError:
|
|
||||||
return registers[y]
|
|
||||||
|
|
||||||
instructions = parse(input)
|
|
||||||
registers: dict[str, int] = collections.defaultdict(int)
|
|
||||||
|
|
||||||
ip = 0
|
|
||||||
registers["a"] = 7
|
|
||||||
while True:
|
|
||||||
if ip < 0 or ip >= len(instructions):
|
|
||||||
break
|
|
||||||
instr = instructions[ip]
|
|
||||||
ip += 1
|
|
||||||
match instr.op:
|
|
||||||
case Op.CPY:
|
|
||||||
assert instr.y is not None
|
|
||||||
if instr.y.isdigit():
|
|
||||||
continue
|
|
||||||
registers[instr.y] = resolve(instr.x, registers)
|
|
||||||
case Op.INC:
|
|
||||||
if instr.x.isdigit():
|
|
||||||
continue
|
|
||||||
registers[instr.x] += 1
|
|
||||||
case Op.DEC:
|
|
||||||
if instr.x.isdigit():
|
|
||||||
continue
|
|
||||||
registers[instr.x] -= 1
|
|
||||||
case Op.JNZ:
|
|
||||||
if resolve(instr.x, registers) != 0:
|
|
||||||
ip += resolve(instr.y, registers) - 1 # Account auto-increment
|
|
||||||
case Op.TGL:
|
|
||||||
target = ip + resolve(instr.x, registers) - 1 # Account auto-increment
|
|
||||||
if target < 0 or target >= len(instructions):
|
|
||||||
continue
|
|
||||||
instructions[target] = instructions[target].toggle()
|
|
||||||
return registers["a"]
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
cpy a b
|
|
||||||
dec b
|
|
||||||
cpy a d
|
|
||||||
cpy 0 a
|
|
||||||
cpy b c
|
|
||||||
inc a
|
|
||||||
dec c
|
|
||||||
jnz c -2
|
|
||||||
dec d
|
|
||||||
jnz d -5
|
|
||||||
dec b
|
|
||||||
cpy b c
|
|
||||||
cpy c d
|
|
||||||
dec d
|
|
||||||
inc c
|
|
||||||
jnz d -2
|
|
||||||
tgl c
|
|
||||||
cpy -16 c
|
|
||||||
jnz 1 c
|
|
||||||
cpy 95 c
|
|
||||||
jnz 95 d
|
|
||||||
inc a
|
|
||||||
inc d
|
|
||||||
jnz d -2
|
|
||||||
inc c
|
|
||||||
jnz c -5
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import math
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Op(enum.StrEnum):
|
|
||||||
CPY = "cpy"
|
|
||||||
INC = "inc"
|
|
||||||
DEC = "dec"
|
|
||||||
JNZ = "jnz"
|
|
||||||
TGL = "tgl"
|
|
||||||
|
|
||||||
|
|
||||||
class Instruction(NamedTuple):
|
|
||||||
op: Op
|
|
||||||
x: str
|
|
||||||
y: str | None = None
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Instruction":
|
|
||||||
op, *rest = input.split()
|
|
||||||
return cls(Op(op), *rest)
|
|
||||||
|
|
||||||
def toggle(self) -> "Instruction":
|
|
||||||
if self.y is None:
|
|
||||||
op = Op.DEC if self.op == Op.INC else Op.INC
|
|
||||||
else:
|
|
||||||
op = Op.CPY if self.op == Op.JNZ else Op.JNZ
|
|
||||||
return Instruction(op, self.x, self.y)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Instruction]:
|
|
||||||
return [Instruction.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
instructions = parse(input)
|
|
||||||
|
|
||||||
num_eggs = 12
|
|
||||||
c = int(instructions[19].x)
|
|
||||||
d = int(instructions[20].x)
|
|
||||||
return math.factorial(num_eggs) + c * d
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
cpy a b
|
|
||||||
dec b
|
|
||||||
cpy a d
|
|
||||||
cpy 0 a
|
|
||||||
cpy b c
|
|
||||||
inc a
|
|
||||||
dec c
|
|
||||||
jnz c -2
|
|
||||||
dec d
|
|
||||||
jnz d -5
|
|
||||||
dec b
|
|
||||||
cpy b c
|
|
||||||
cpy c d
|
|
||||||
dec d
|
|
||||||
inc c
|
|
||||||
jnz d -2
|
|
||||||
tgl c
|
|
||||||
cpy -16 c
|
|
||||||
jnz 1 c
|
|
||||||
cpy 95 c
|
|
||||||
jnz 95 d
|
|
||||||
inc a
|
|
||||||
inc d
|
|
||||||
jnz d -2
|
|
||||||
inc c
|
|
||||||
jnz c -5
|
|
||||||
|
|
@ -1,96 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import heapq
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
from collections.abc import Iterator
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> tuple[set[Point], dict[int, Point]]:
|
|
||||||
spaces: set[Point] = set()
|
|
||||||
waypoints: dict[int, Point] = {}
|
|
||||||
for x, line in enumerate(input.splitlines()):
|
|
||||||
for y, c in enumerate(line):
|
|
||||||
if c == "#":
|
|
||||||
continue
|
|
||||||
p = Point(x, y)
|
|
||||||
spaces.add(p)
|
|
||||||
if c != ".":
|
|
||||||
waypoints[int(c)] = p
|
|
||||||
return spaces, waypoints
|
|
||||||
|
|
||||||
def neighbours(p: Point) -> Iterator[Point]:
|
|
||||||
for dx, dy in (
|
|
||||||
(-1, 0),
|
|
||||||
(1, 0),
|
|
||||||
(0, -1),
|
|
||||||
(0, 1),
|
|
||||||
):
|
|
||||||
yield Point(p.x + dx, p.y + dy)
|
|
||||||
|
|
||||||
def dijkstra(start: Point, end: Point, points: set[Point]) -> int:
|
|
||||||
# Priority queue of (distance, point)
|
|
||||||
queue = [(0, start)]
|
|
||||||
seen: set[Point] = set()
|
|
||||||
|
|
||||||
while len(queue) > 0:
|
|
||||||
dist, p = heapq.heappop(queue)
|
|
||||||
if p == end:
|
|
||||||
return dist
|
|
||||||
# We must have seen p with a smaller distance before
|
|
||||||
if p in seen:
|
|
||||||
continue
|
|
||||||
# First time encountering p, must be the smallest distance to it
|
|
||||||
seen.add(p)
|
|
||||||
# Add all neighbours to be visited
|
|
||||||
for n in neighbours(p):
|
|
||||||
if n not in points:
|
|
||||||
continue
|
|
||||||
heapq.heappush(queue, (dist + 1, n))
|
|
||||||
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
def waypoint_distances(
|
|
||||||
points: set[Point], waypoints: dict[int, Point]
|
|
||||||
) -> dict[int, dict[int, int]]:
|
|
||||||
res: dict[int, dict[int, int]] = collections.defaultdict(dict)
|
|
||||||
for p1, p2 in itertools.combinations(waypoints.keys(), 2):
|
|
||||||
dist = dijkstra(waypoints[p1], waypoints[p2], points)
|
|
||||||
res[p1][p2] = dist
|
|
||||||
res[p2][p1] = dist
|
|
||||||
return res
|
|
||||||
|
|
||||||
def traveling_salesman(
|
|
||||||
start: int,
|
|
||||||
points: set[Point],
|
|
||||||
waypoints: dict[int, Point],
|
|
||||||
) -> int:
|
|
||||||
def list_travels() -> Iterator[Iterator[int]]:
|
|
||||||
for destinations in itertools.permutations(waypoints.keys() - {start}):
|
|
||||||
yield itertools.chain([start], destinations)
|
|
||||||
|
|
||||||
distances = waypoint_distances(points, waypoints)
|
|
||||||
return min(
|
|
||||||
sum(distances[s][e] for s, e in itertools.pairwise(travel_plan))
|
|
||||||
for travel_plan in list_travels()
|
|
||||||
)
|
|
||||||
|
|
||||||
points, waypoints = parse(input)
|
|
||||||
return traveling_salesman(0, points, waypoints)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
###################################################################################################################################################################################
|
|
||||||
#.#.........#.#.....#.#.#.#.#.........#...#.......#.....#.#.....#...#.......#.#...#.#.....#...#.....#.................#.#...#.....#.....#.....#.............#.........#.#.....#0#.#
|
|
||||||
#.###.#.#.#.#.#.#.#.#.#.#.#.#####.#.#.#.#.#.###.#.#.###.#.#.#.#.#.###.#.#.#.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#.###.#.#.#.#.#.#.#.###.#.#.#.#.#####.#####.#.#.#.#.#.#.#.#.###.#.#.#.#
|
|
||||||
#.......#.......#.#...#.....#...#.#...#...#.....#2#.#...#.#.....#...#...#.......#...#...#.....#.#.#.....#...#.#.....#.........#.#.#.....#.......#...#.....#.......#.....#...#...#.#
|
|
||||||
#.###.#.#.#.###.#####.#.#.#.###.#.###.#.#.###.#.#####.#.#####.#.#.#.#########.#.#.#######.###.#.#.#.#.#.###.#.#.#.#.###.#.#.#.#.#.#.#.###.###.#.#.###.#####.#.#.#####.#.###.#.#.#.#
|
|
||||||
#.....#...........#...#.......................#...........#.#...#.#.#.#.....#.#...#...#.#...#.#.........#...#.....#...#...#.....#.....#.....#...#.....#.#...#...........#.....#.#.#
|
|
||||||
#####.###.#########.###.#.#########.###.###.#.#####.#####.#.#.#####.#.#.#.###.#.#.#.#.#.###.#.###########.#.#.#.#.#.#####.#######.###.#.###.#.###.#####.#.#.#####.#.#.###.###.#.#.#
|
|
||||||
#...#.#1..#...........#.#.....#...#.#.....#...#...#...........#...#.......#...............#...#.......#.....#.....#.#...#.....#...#.#.#.......#.......#.............#...........#.#
|
|
||||||
#.#.#.#.###.#.#.#.#.###.#.#.#.#.#.#.#.###.#.#.#.#.#.#.#.#####.#####.###.#.#.#######.#####.###.#.###.#.#.###.#.#.###.#.#.#.#.#.#.###.#.#.###.#.#.#.#.#.#.#.#.#.###.#######.#.#######
|
|
||||||
#...#...#...#.....#...#...........#...#.#...#...#.#.#.#...#...#...#...#.#...#.#.......#...#...#.#.....#.#.....#.....#.....#.....#.#.#...#...#.#.....#.....#.....#.......#.#.#.....#
|
|
||||||
#.#.#.#.###.#.#####.#.#.#.#.#####.#.#.#.#.###.#.#.#.#.#####.#.#.#.#.#.#.###.#.#.#.#.#.#####.#.#.#.#.###.###.#.###.###.###.#.#.#.#.#.###.###.#.###.#.#.###.#.###.#.#.###.#.###.#.###
|
|
||||||
#...#...#...#...........#.........#.#.#.#.....#.#.#.#.#.........#.....#.#.......#.#.#...#.....#...#...#.......#.#.....#.#.....#.......#...#.#.#...#.#.#...#.#...#.#...#.#.#...#.#.#
|
|
||||||
#.###.###.#.#.#.#.#.###.#.#.#.#.#.#.#.#.###.#.#####.#.#.#.#.#####.#.#.#.#.#.###.#.#.###.###.###.#######.#.#####.###.#.#.#.###.#.#.###.#.#.#.#.#.#.#.###.#.###.#.#.#.#####.#.#.#.#.#
|
|
||||||
#...#.#...#.#.#.............#.......#.#...............#.#.#.....#...#.#...#.....#...#...................#.....#.#.#.....#.........#...#.#...#.......#...#...#...#.#.......#.....#.#
|
|
||||||
###.#.#.#.#.#.#######.#.#.#.#.#.###.#####.###.#.#.###.#.###.###.#.#.#.#.#.#.#########.###.#.#.###.#.#.#.#.#.#.#.#.#.###.###########.#.#.#####.#.#####.#.#.#.###.#.#.###.#.###.#.#.#
|
|
||||||
#...#.....#...#...#...#.#...#.....#.#.......#.....#...#...#.#.....#...#...#...#.......#.............#.....#...#.....#.......#.....#.#.#.......#.....#...#.....#...#.....#.#...#...#
|
|
||||||
#.#.#####.#########.#.#.#.#.###########.###.###.#.#.#.#.#.#.#####.#.###.#.#.###.#####.#.#.#####.###.#.#.###.#.#.###.#.###.#.#.#.###.#.#.#.#####.#.#.#.#.#.#.#.#.#.#.#####.#.#.#.###
|
|
||||||
#.........#.#...........#.#.#...#.#.....#.....#...........#.#.....#.....#...#.#...#.#.......#...#.#.......#.....#...#...#...#.......#.#.......#.#.....#...#...#.#.#.#4........#...#
|
|
||||||
#.###.#.###.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#############.#.#.#######.#.#.#.#.###.#.#.#####.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.###.###.#.#.###.#.#.#.#.#.#.#.#.#.#.#.###.#.#####.#.#
|
|
||||||
#3........#...#...#.#.#.#...#...#.....#...#.#...#...#.#.#.#...#.....#.#.#.#.............#.........#.#.....#.....#.#.............#.#.#.#...#...#...#.#.............#.#...#.....#...#
|
|
||||||
###.###.#.#.###.###.###.#.#####.#####.#####.#.#.#.#.#.#.###.#.#.#.#.#.#####.###.###.#.###.#.#.#.#.#.#.#.###.#.###.###########.###.#.#.#.#.#.#.#.#####.###.#.#.#.#.#.###.###.#.#.#.#
|
|
||||||
#...#.......#.#.#...............#.........#...#.....#.#...........#.#.........#.....#.........#...#...#.........#.......#.......#.........#.....#.#...#...#.#.#.....#.............#
|
|
||||||
#.#.###.#####.###.###.#.###.#.###.#.#.###.###.#.#####.#######.###.#.#.###.#####.#.#.#.#.#.#.###.#.#####.#.#.#######.#.#.###.###.#.#.###.#.###.#.#.###.#############.#.###.#.#####.#
|
|
||||||
#.#.#...#...#.#...#.#...#...#.....#.#.........#.......#.............#.#...#.........#.#.....#.....#.....#...#.....#...#...#.....#...#...#.........#...#.....#.........#...#.....#.#
|
|
||||||
#.#####.#.#.#.#.#.#.#.#.#.#.#.#####.#.#.#.#.###.#.###.#.#.###.###.#.###.#.#.#.#.###.#.#####.###.#.###.#########.#.#.#####.#.#.#.#.#.###.###.###.#.#.#.#.###.#.#.#.#.###.#.#.#.#.#.#
|
|
||||||
#.................#...#...#.#...........#.#.#.......#.......#...#.#...#...#.#...#.#.#.......#.#.#...#...........#.............#.#...#...#.......#...#.#.....#...#.#...#...#.......#
|
|
||||||
#.#.#.#.#.###.###.#.#.#####.#.#.#.#####.#.#.#.###.#.#######.###.#.#.###.#.#.#####.#.#####.#.#.#.#.#.#.#.#.#.#.#.#.###.#.#####.#####.###.#.#.###.#.#.#.#.#.#.#.###.#.#.#.#.#####.#.#
|
|
||||||
#...#.#.#...#.....#.#.#.......#...#...#...#.......................#.#.....#.................#.....#.......#...#...........#...#...........#...#...#...#.....#.#.#...#.#.#...#...#.#
|
|
||||||
#.#.#.#.###.#.#######.#####.###.#.#.#.###.#.###.#.#.###.#.#.#.###.#####.#.#.#.#.#.###.#.#####.###.#######.#.#.#.###.###.#.###.#.#.###.###.#.#.###.###.#.###.###.###.#.#.###.#.#.#.#
|
|
||||||
#...#...#.#.#...#...#.#...#...#.#.....#.#...#.....#.....#.....#.#.....#.....#.#...#.#...#.........#.....#.#.....................#...#...#.#...#...#...#.#.....#.#...#.....#...#...#
|
|
||||||
#.#####.#.#####.###.#.#.#.#.#.#.#.#.###.#####.#.#.#.###.#.###.#.###.#.###.###.#.#.#.###.#.#.#.#.#.#.#.#.#.#.###.#.###.#.#######.#.#.#.#.#.#.#.#.#.#.#.#.#.#####.#.#.#.#.#.#.#.#.#.#
|
|
||||||
#.....#.#.#7..#.#.......#...#.#.....#...#.........#...#.#...#.......#.....#...#.#...#.#...#.#.#.#.#.......#.....#...#...#.........#.....#...#.....#.....#.#.....#.............#..5#
|
|
||||||
#.###.#.#.###.#.###.#######.#.#####.###.#.#.###.#.#.#.#.###.###.#.#.#####.#.#.#.#.#.#.#.###.#.#.#.#.#.###.###.###.#.#####.###.#.###.#.#.#.#.#.#####.#.#.#.#.#####.#.#.#.#.###.#.#.#
|
|
||||||
#.......#.....#.....#.#.......#.#.#...#...#6#.#.......#...#.#.#.....#.#.#.....#.....#.....#.....#.#...#.........#...#...#.#.......#.#.#...#.#...#...#.....#.#.....#...#...#...#.#.#
|
|
||||||
###.#.###.#.#.#.#.#.#.#.###.#.#.#.#.###.#.#.#.#####.#.#####.#.#.#.#.#.#.###.#.#####.#.#.#.#######.#.#.#####.#.#.#.#.#.#.#.###.###.###.#.#.#.#.#######.#.#.#.#.#.#.#.#.###.#.#.#.#.#
|
|
||||||
#...#.#...#.#.....#...#.....#...#.#.....#...#.#...#.#.......#...#.....#...#.......#.....#.#...#...#...#.#...#.....#.....#.........#.#.......#.#.......#.#.....#.....#.#...........#
|
|
||||||
#.#.#.###.#.###.###.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#######.###.#.#.#####.###.#.#.#.#.#.#.#.#.###.#.#.#####.###.###.###.#.#.#.#.#.#####.#.#####.#.#.#.###.#.###.#.#.#####.#.#.#######.#
|
|
||||||
#.#.#...#.......#.....#...#.#...#...................#...#...#...#...#.......#.#.....#...#...#.........#.....#...........#...#.#.#.#.#.#...#.........#.#.........#.#...#.....#.#...#
|
|
||||||
###################################################################################################################################################################################
|
|
||||||
|
|
@ -1,96 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import collections
|
|
||||||
import heapq
|
|
||||||
import itertools
|
|
||||||
import sys
|
|
||||||
from collections.abc import Iterator
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Point(NamedTuple):
|
|
||||||
x: int
|
|
||||||
y: int
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> tuple[set[Point], dict[int, Point]]:
|
|
||||||
spaces: set[Point] = set()
|
|
||||||
waypoints: dict[int, Point] = {}
|
|
||||||
for x, line in enumerate(input.splitlines()):
|
|
||||||
for y, c in enumerate(line):
|
|
||||||
if c == "#":
|
|
||||||
continue
|
|
||||||
p = Point(x, y)
|
|
||||||
spaces.add(p)
|
|
||||||
if c != ".":
|
|
||||||
waypoints[int(c)] = p
|
|
||||||
return spaces, waypoints
|
|
||||||
|
|
||||||
def neighbours(p: Point) -> Iterator[Point]:
|
|
||||||
for dx, dy in (
|
|
||||||
(-1, 0),
|
|
||||||
(1, 0),
|
|
||||||
(0, -1),
|
|
||||||
(0, 1),
|
|
||||||
):
|
|
||||||
yield Point(p.x + dx, p.y + dy)
|
|
||||||
|
|
||||||
def dijkstra(start: Point, end: Point, points: set[Point]) -> int:
|
|
||||||
# Priority queue of (distance, point)
|
|
||||||
queue = [(0, start)]
|
|
||||||
seen: set[Point] = set()
|
|
||||||
|
|
||||||
while len(queue) > 0:
|
|
||||||
dist, p = heapq.heappop(queue)
|
|
||||||
if p == end:
|
|
||||||
return dist
|
|
||||||
# We must have seen p with a smaller distance before
|
|
||||||
if p in seen:
|
|
||||||
continue
|
|
||||||
# First time encountering p, must be the smallest distance to it
|
|
||||||
seen.add(p)
|
|
||||||
# Add all neighbours to be visited
|
|
||||||
for n in neighbours(p):
|
|
||||||
if n not in points:
|
|
||||||
continue
|
|
||||||
heapq.heappush(queue, (dist + 1, n))
|
|
||||||
|
|
||||||
assert False # Sanity check
|
|
||||||
|
|
||||||
def waypoint_distances(
|
|
||||||
points: set[Point], waypoints: dict[int, Point]
|
|
||||||
) -> dict[int, dict[int, int]]:
|
|
||||||
res: dict[int, dict[int, int]] = collections.defaultdict(dict)
|
|
||||||
for p1, p2 in itertools.combinations(waypoints.keys(), 2):
|
|
||||||
dist = dijkstra(waypoints[p1], waypoints[p2], points)
|
|
||||||
res[p1][p2] = dist
|
|
||||||
res[p2][p1] = dist
|
|
||||||
return res
|
|
||||||
|
|
||||||
def traveling_salesman(
|
|
||||||
start: int,
|
|
||||||
points: set[Point],
|
|
||||||
waypoints: dict[int, Point],
|
|
||||||
) -> int:
|
|
||||||
def list_travel_loops() -> Iterator[Iterator[int]]:
|
|
||||||
for destinations in itertools.permutations(waypoints.keys() - {start}):
|
|
||||||
yield itertools.chain([start], destinations, [start])
|
|
||||||
|
|
||||||
distances = waypoint_distances(points, waypoints)
|
|
||||||
return min(
|
|
||||||
sum(distances[s][e] for s, e in itertools.pairwise(travel_plan))
|
|
||||||
for travel_plan in list_travel_loops()
|
|
||||||
)
|
|
||||||
|
|
||||||
points, waypoints = parse(input)
|
|
||||||
return traveling_salesman(0, points, waypoints)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
###################################################################################################################################################################################
|
|
||||||
#.#.........#.#.....#.#.#.#.#.........#...#.......#.....#.#.....#...#.......#.#...#.#.....#...#.....#.................#.#...#.....#.....#.....#.............#.........#.#.....#0#.#
|
|
||||||
#.###.#.#.#.#.#.#.#.#.#.#.#.#####.#.#.#.#.#.###.#.#.###.#.#.#.#.#.###.#.#.#.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#.###.#.#.#.#.#.#.#.###.#.#.#.#.#####.#####.#.#.#.#.#.#.#.#.###.#.#.#.#
|
|
||||||
#.......#.......#.#...#.....#...#.#...#...#.....#2#.#...#.#.....#...#...#.......#...#...#.....#.#.#.....#...#.#.....#.........#.#.#.....#.......#...#.....#.......#.....#...#...#.#
|
|
||||||
#.###.#.#.#.###.#####.#.#.#.###.#.###.#.#.###.#.#####.#.#####.#.#.#.#########.#.#.#######.###.#.#.#.#.#.###.#.#.#.#.###.#.#.#.#.#.#.#.###.###.#.#.###.#####.#.#.#####.#.###.#.#.#.#
|
|
||||||
#.....#...........#...#.......................#...........#.#...#.#.#.#.....#.#...#...#.#...#.#.........#...#.....#...#...#.....#.....#.....#...#.....#.#...#...........#.....#.#.#
|
|
||||||
#####.###.#########.###.#.#########.###.###.#.#####.#####.#.#.#####.#.#.#.###.#.#.#.#.#.###.#.###########.#.#.#.#.#.#####.#######.###.#.###.#.###.#####.#.#.#####.#.#.###.###.#.#.#
|
|
||||||
#...#.#1..#...........#.#.....#...#.#.....#...#...#...........#...#.......#...............#...#.......#.....#.....#.#...#.....#...#.#.#.......#.......#.............#...........#.#
|
|
||||||
#.#.#.#.###.#.#.#.#.###.#.#.#.#.#.#.#.###.#.#.#.#.#.#.#.#####.#####.###.#.#.#######.#####.###.#.###.#.#.###.#.#.###.#.#.#.#.#.#.###.#.#.###.#.#.#.#.#.#.#.#.#.###.#######.#.#######
|
|
||||||
#...#...#...#.....#...#...........#...#.#...#...#.#.#.#...#...#...#...#.#...#.#.......#...#...#.#.....#.#.....#.....#.....#.....#.#.#...#...#.#.....#.....#.....#.......#.#.#.....#
|
|
||||||
#.#.#.#.###.#.#####.#.#.#.#.#####.#.#.#.#.###.#.#.#.#.#####.#.#.#.#.#.#.###.#.#.#.#.#.#####.#.#.#.#.###.###.#.###.###.###.#.#.#.#.#.###.###.#.###.#.#.###.#.###.#.#.###.#.###.#.###
|
|
||||||
#...#...#...#...........#.........#.#.#.#.....#.#.#.#.#.........#.....#.#.......#.#.#...#.....#...#...#.......#.#.....#.#.....#.......#...#.#.#...#.#.#...#.#...#.#...#.#.#...#.#.#
|
|
||||||
#.###.###.#.#.#.#.#.###.#.#.#.#.#.#.#.#.###.#.#####.#.#.#.#.#####.#.#.#.#.#.###.#.#.###.###.###.#######.#.#####.###.#.#.#.###.#.#.###.#.#.#.#.#.#.#.###.#.###.#.#.#.#####.#.#.#.#.#
|
|
||||||
#...#.#...#.#.#.............#.......#.#...............#.#.#.....#...#.#...#.....#...#...................#.....#.#.#.....#.........#...#.#...#.......#...#...#...#.#.......#.....#.#
|
|
||||||
###.#.#.#.#.#.#######.#.#.#.#.#.###.#####.###.#.#.###.#.###.###.#.#.#.#.#.#.#########.###.#.#.###.#.#.#.#.#.#.#.#.#.###.###########.#.#.#####.#.#####.#.#.#.###.#.#.###.#.###.#.#.#
|
|
||||||
#...#.....#...#...#...#.#...#.....#.#.......#.....#...#...#.#.....#...#...#...#.......#.............#.....#...#.....#.......#.....#.#.#.......#.....#...#.....#...#.....#.#...#...#
|
|
||||||
#.#.#####.#########.#.#.#.#.###########.###.###.#.#.#.#.#.#.#####.#.###.#.#.###.#####.#.#.#####.###.#.#.###.#.#.###.#.###.#.#.#.###.#.#.#.#####.#.#.#.#.#.#.#.#.#.#.#####.#.#.#.###
|
|
||||||
#.........#.#...........#.#.#...#.#.....#.....#...........#.#.....#.....#...#.#...#.#.......#...#.#.......#.....#...#...#...#.......#.#.......#.#.....#...#...#.#.#.#4........#...#
|
|
||||||
#.###.#.###.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#############.#.#.#######.#.#.#.#.###.#.#.#####.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.###.###.#.#.###.#.#.#.#.#.#.#.#.#.#.#.###.#.#####.#.#
|
|
||||||
#3........#...#...#.#.#.#...#...#.....#...#.#...#...#.#.#.#...#.....#.#.#.#.............#.........#.#.....#.....#.#.............#.#.#.#...#...#...#.#.............#.#...#.....#...#
|
|
||||||
###.###.#.#.###.###.###.#.#####.#####.#####.#.#.#.#.#.#.###.#.#.#.#.#.#####.###.###.#.###.#.#.#.#.#.#.#.###.#.###.###########.###.#.#.#.#.#.#.#.#####.###.#.#.#.#.#.###.###.#.#.#.#
|
|
||||||
#...#.......#.#.#...............#.........#...#.....#.#...........#.#.........#.....#.........#...#...#.........#.......#.......#.........#.....#.#...#...#.#.#.....#.............#
|
|
||||||
#.#.###.#####.###.###.#.###.#.###.#.#.###.###.#.#####.#######.###.#.#.###.#####.#.#.#.#.#.#.###.#.#####.#.#.#######.#.#.###.###.#.#.###.#.###.#.#.###.#############.#.###.#.#####.#
|
|
||||||
#.#.#...#...#.#...#.#...#...#.....#.#.........#.......#.............#.#...#.........#.#.....#.....#.....#...#.....#...#...#.....#...#...#.........#...#.....#.........#...#.....#.#
|
|
||||||
#.#####.#.#.#.#.#.#.#.#.#.#.#.#####.#.#.#.#.###.#.###.#.#.###.###.#.###.#.#.#.#.###.#.#####.###.#.###.#########.#.#.#####.#.#.#.#.#.###.###.###.#.#.#.#.###.#.#.#.#.###.#.#.#.#.#.#
|
|
||||||
#.................#...#...#.#...........#.#.#.......#.......#...#.#...#...#.#...#.#.#.......#.#.#...#...........#.............#.#...#...#.......#...#.#.....#...#.#...#...#.......#
|
|
||||||
#.#.#.#.#.###.###.#.#.#####.#.#.#.#####.#.#.#.###.#.#######.###.#.#.###.#.#.#####.#.#####.#.#.#.#.#.#.#.#.#.#.#.#.###.#.#####.#####.###.#.#.###.#.#.#.#.#.#.#.###.#.#.#.#.#####.#.#
|
|
||||||
#...#.#.#...#.....#.#.#.......#...#...#...#.......................#.#.....#.................#.....#.......#...#...........#...#...........#...#...#...#.....#.#.#...#.#.#...#...#.#
|
|
||||||
#.#.#.#.###.#.#######.#####.###.#.#.#.###.#.###.#.#.###.#.#.#.###.#####.#.#.#.#.#.###.#.#####.###.#######.#.#.#.###.###.#.###.#.#.###.###.#.#.###.###.#.###.###.###.#.#.###.#.#.#.#
|
|
||||||
#...#...#.#.#...#...#.#...#...#.#.....#.#...#.....#.....#.....#.#.....#.....#.#...#.#...#.........#.....#.#.....................#...#...#.#...#...#...#.#.....#.#...#.....#...#...#
|
|
||||||
#.#####.#.#####.###.#.#.#.#.#.#.#.#.###.#####.#.#.#.###.#.###.#.###.#.###.###.#.#.#.###.#.#.#.#.#.#.#.#.#.#.###.#.###.#.#######.#.#.#.#.#.#.#.#.#.#.#.#.#.#####.#.#.#.#.#.#.#.#.#.#
|
|
||||||
#.....#.#.#7..#.#.......#...#.#.....#...#.........#...#.#...#.......#.....#...#.#...#.#...#.#.#.#.#.......#.....#...#...#.........#.....#...#.....#.....#.#.....#.............#..5#
|
|
||||||
#.###.#.#.###.#.###.#######.#.#####.###.#.#.###.#.#.#.#.###.###.#.#.#####.#.#.#.#.#.#.#.###.#.#.#.#.#.###.###.###.#.#####.###.#.###.#.#.#.#.#.#####.#.#.#.#.#####.#.#.#.#.###.#.#.#
|
|
||||||
#.......#.....#.....#.#.......#.#.#...#...#6#.#.......#...#.#.#.....#.#.#.....#.....#.....#.....#.#...#.........#...#...#.#.......#.#.#...#.#...#...#.....#.#.....#...#...#...#.#.#
|
|
||||||
###.#.###.#.#.#.#.#.#.#.###.#.#.#.#.###.#.#.#.#####.#.#####.#.#.#.#.#.#.###.#.#####.#.#.#.#######.#.#.#####.#.#.#.#.#.#.#.###.###.###.#.#.#.#.#######.#.#.#.#.#.#.#.#.###.#.#.#.#.#
|
|
||||||
#...#.#...#.#.....#...#.....#...#.#.....#...#.#...#.#.......#...#.....#...#.......#.....#.#...#...#...#.#...#.....#.....#.........#.#.......#.#.......#.#.....#.....#.#...........#
|
|
||||||
#.#.#.###.#.###.###.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#######.###.#.#.#####.###.#.#.#.#.#.#.#.#.###.#.#.#####.###.###.###.#.#.#.#.#.#####.#.#####.#.#.#.###.#.###.#.#.#####.#.#.#######.#
|
|
||||||
#.#.#...#.......#.....#...#.#...#...................#...#...#...#...#.......#.#.....#...#...#.........#.....#...........#...#.#.#.#.#.#...#.........#.#.........#.#...#.....#.#...#
|
|
||||||
###################################################################################################################################################################################
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import sys
|
|
||||||
from typing import NamedTuple
|
|
||||||
|
|
||||||
|
|
||||||
class Op(enum.StrEnum):
|
|
||||||
CPY = "cpy"
|
|
||||||
INC = "inc"
|
|
||||||
DEC = "dec"
|
|
||||||
JNZ = "jnz"
|
|
||||||
OUT = "out"
|
|
||||||
|
|
||||||
|
|
||||||
class Instruction(NamedTuple):
|
|
||||||
op: Op
|
|
||||||
x: str
|
|
||||||
y: str | None = None
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_str(cls, input: str) -> "Instruction":
|
|
||||||
op, *rest = input.split()
|
|
||||||
return cls(Op(op), *rest)
|
|
||||||
|
|
||||||
|
|
||||||
def solve(input: str) -> int:
|
|
||||||
def parse(input: str) -> list[Instruction]:
|
|
||||||
return [Instruction.from_str(line) for line in input.splitlines()]
|
|
||||||
|
|
||||||
def next_signal_int(n: int) -> int:
|
|
||||||
res = 0b10
|
|
||||||
while res < n:
|
|
||||||
res = (res << 2) | res
|
|
||||||
return res
|
|
||||||
|
|
||||||
instructions = parse(input)
|
|
||||||
bc = int(instructions[1].x) * int(instructions[2].x)
|
|
||||||
return next_signal_int(bc) - bc
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
input = sys.stdin.read()
|
|
||||||
print(solve(input))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
cpy a d
|
|
||||||
cpy 15 c
|
|
||||||
cpy 170 b
|
|
||||||
inc d
|
|
||||||
dec b
|
|
||||||
jnz b -2
|
|
||||||
dec c
|
|
||||||
jnz c -5
|
|
||||||
cpy d a
|
|
||||||
jnz 0 0
|
|
||||||
cpy a b
|
|
||||||
cpy 0 a
|
|
||||||
cpy 2 c
|
|
||||||
jnz b 2
|
|
||||||
jnz 1 6
|
|
||||||
dec b
|
|
||||||
dec c
|
|
||||||
jnz c -4
|
|
||||||
inc a
|
|
||||||
jnz 1 -7
|
|
||||||
cpy 2 b
|
|
||||||
jnz c 2
|
|
||||||
jnz 1 4
|
|
||||||
dec b
|
|
||||||
dec c
|
|
||||||
jnz 1 -4
|
|
||||||
jnz 0 0
|
|
||||||
out b
|
|
||||||
jnz a -19
|
|
||||||
jnz 1 -21
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
print("There is no part two...")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
Begin in state A.
|
|
||||||
Perform a diagnostic checksum after 12683008 steps.
|
|
||||||
|
|
||||||
In state A:
|
|
||||||
If the current value is 0:
|
|
||||||
- Write the value 1.
|
|
||||||
- Move one slot to the right.
|
|
||||||
- Continue with state B.
|
|
||||||
If the current value is 1:
|
|
||||||
- Write the value 0.
|
|
||||||
- Move one slot to the left.
|
|
||||||
- Continue with state B.
|
|
||||||
|
|
||||||
In state B:
|
|
||||||
If the current value is 0:
|
|
||||||
- Write the value 1.
|
|
||||||
- Move one slot to the left.
|
|
||||||
- Continue with state C.
|
|
||||||
If the current value is 1:
|
|
||||||
- Write the value 0.
|
|
||||||
- Move one slot to the right.
|
|
||||||
- Continue with state E.
|
|
||||||
|
|
||||||
In state C:
|
|
||||||
If the current value is 0:
|
|
||||||
- Write the value 1.
|
|
||||||
- Move one slot to the right.
|
|
||||||
- Continue with state E.
|
|
||||||
If the current value is 1:
|
|
||||||
- Write the value 0.
|
|
||||||
- Move one slot to the left.
|
|
||||||
- Continue with state D.
|
|
||||||
|
|
||||||
In state D:
|
|
||||||
If the current value is 0:
|
|
||||||
- Write the value 1.
|
|
||||||
- Move one slot to the left.
|
|
||||||
- Continue with state A.
|
|
||||||
If the current value is 1:
|
|
||||||
- Write the value 1.
|
|
||||||
- Move one slot to the left.
|
|
||||||
- Continue with state A.
|
|
||||||
|
|
||||||
In state E:
|
|
||||||
If the current value is 0:
|
|
||||||
- Write the value 0.
|
|
||||||
- Move one slot to the right.
|
|
||||||
- Continue with state A.
|
|
||||||
If the current value is 1:
|
|
||||||
- Write the value 0.
|
|
||||||
- Move one slot to the right.
|
|
||||||
- Continue with state F.
|
|
||||||
|
|
||||||
In state F:
|
|
||||||
If the current value is 0:
|
|
||||||
- Write the value 1.
|
|
||||||
- Move one slot to the right.
|
|
||||||
- Continue with state E.
|
|
||||||
If the current value is 1:
|
|
||||||
- Write the value 1.
|
|
||||||
- Move one slot to the right.
|
|
||||||
- Continue with state A.
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue