Compare commits
4 Commits
647d943b65
...
aa01846a77
| Author | SHA1 | Date | |
|---|---|---|---|
| aa01846a77 | |||
| 3d2a23a89d | |||
| 67bfd066ba | |||
| 47eb4890b0 |
258
src/Year_2023/Day05.py
Normal file
258
src/Year_2023/Day05.py
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
# --- Day 5: If You Give A Seed A Fertilizer ---
|
||||||
|
|
||||||
|
# You take the boat and find the gardener right where you were told he would be:
|
||||||
|
# managing a giant "garden" that looks more to you like a farm.
|
||||||
|
|
||||||
|
# "A water source? Island Island is the water source!" You point out that Snow
|
||||||
|
# Island isn't receiving any water.
|
||||||
|
|
||||||
|
# "Oh, we had to stop the water because we ran out of sand to filter it with!
|
||||||
|
# Can't make snow with dirty water. Don't worry, I'm sure we'll get more sand
|
||||||
|
# soon; we only turned off the water a few days... weeks... oh no." His face
|
||||||
|
# sinks into a look of horrified realization.
|
||||||
|
|
||||||
|
# "I've been so busy making sure everyone here has food that I completely forgot
|
||||||
|
# to check why we stopped getting more sand! There's a ferry leaving soon that
|
||||||
|
# is headed over in that direction - it's much faster than your boat. Could you
|
||||||
|
# please go check it out?"
|
||||||
|
|
||||||
|
# You barely have time to agree to this request when he brings up another.
|
||||||
|
# "While you wait for the ferry, maybe you can help us with our food production
|
||||||
|
# problem. The latest Island Island Almanac just arrived and we're having
|
||||||
|
# trouble making sense of it."
|
||||||
|
|
||||||
|
# The almanac (your puzzle input) lists all of the seeds that need to be
|
||||||
|
# planted. It also lists what type of soil to use with each kind of seed, what
|
||||||
|
# type of fertilizer to use with each kind of soil, what type of water to use
|
||||||
|
# with each kind of fertilizer, and so on. Every type of seed, soil, fertilizer
|
||||||
|
# and so on is identified with a number, but numbers are reused by each category
|
||||||
|
# - that is, soil 123 and fertilizer 123 aren't necessarily related to each
|
||||||
|
# other.
|
||||||
|
|
||||||
|
# For example:
|
||||||
|
|
||||||
|
# seeds: 79 14 55 13
|
||||||
|
|
||||||
|
# seed-to-soil map:
|
||||||
|
# 50 98 2
|
||||||
|
# 52 50 48
|
||||||
|
|
||||||
|
# soil-to-fertilizer map:
|
||||||
|
# 0 15 37
|
||||||
|
# 37 52 2
|
||||||
|
# 39 0 15
|
||||||
|
|
||||||
|
# fertilizer-to-water map:
|
||||||
|
# 49 53 8
|
||||||
|
# 0 11 42
|
||||||
|
# 42 0 7
|
||||||
|
# 57 7 4
|
||||||
|
|
||||||
|
# water-to-light map:
|
||||||
|
# 88 18 7
|
||||||
|
# 18 25 70
|
||||||
|
|
||||||
|
# light-to-temperature map:
|
||||||
|
# 45 77 23
|
||||||
|
# 81 45 19
|
||||||
|
# 68 64 13
|
||||||
|
|
||||||
|
# temperature-to-humidity map:
|
||||||
|
# 0 69 1
|
||||||
|
# 1 0 69
|
||||||
|
|
||||||
|
# humidity-to-location map:
|
||||||
|
# 60 56 37
|
||||||
|
# 56 93 4
|
||||||
|
|
||||||
|
# The almanac starts by listing which seeds need to be planted: seeds 79, 14,
|
||||||
|
# 55, and 13.
|
||||||
|
|
||||||
|
# The rest of the almanac contains a list of maps which describe how to convert
|
||||||
|
# numbers from a source category into numbers in a destination category. That
|
||||||
|
# is, the section that starts with seed-to-soil map: describes how to convert a
|
||||||
|
# seed number (the source) to a soil number (the destination). This lets the
|
||||||
|
# gardener and his team know which soil to use with which seeds, which water to
|
||||||
|
# use with which fertilizer, and so on.
|
||||||
|
|
||||||
|
# Rather than list every source number and its corresponding destination number
|
||||||
|
# one by one, the maps describe entire ranges of numbers that can be converted.
|
||||||
|
# Each line within a map contains three numbers: the destination range start,
|
||||||
|
# the source range start, and the range length.
|
||||||
|
|
||||||
|
# Consider again the example seed-to-soil map:
|
||||||
|
|
||||||
|
# 50 98 2
|
||||||
|
# 52 50 48
|
||||||
|
|
||||||
|
# The first line has a destination range start of 50, a source range start of
|
||||||
|
# 98, and a range length of 2. This line means that the source range starts at
|
||||||
|
# 98 and contains two values: 98 and 99. The destination range is the same
|
||||||
|
# length, but it starts at 50, so its two values are 50 and 51. With this
|
||||||
|
# information, you know that seed number 98 corresponds to soil number 50 and
|
||||||
|
# that seed number 99 corresponds to soil number 51.
|
||||||
|
|
||||||
|
# The second line means that the source range starts at 50 and contains 48
|
||||||
|
# values: 50, 51, ..., 96, 97. This corresponds to a destination range starting
|
||||||
|
# at 52 and also containing 48 values: 52, 53, ..., 98, 99. So, seed number 53
|
||||||
|
# corresponds to soil number 55.
|
||||||
|
|
||||||
|
# Any source numbers that aren't mapped correspond to the same destination
|
||||||
|
# number. So, seed number 10 corresponds to soil number 10.
|
||||||
|
|
||||||
|
# So, the entire list of seed numbers and their corresponding soil numbers looks
|
||||||
|
# like this:
|
||||||
|
|
||||||
|
# seed soil
|
||||||
|
# 0 0
|
||||||
|
# 1 1
|
||||||
|
# ... ...
|
||||||
|
# 48 48
|
||||||
|
# 49 49
|
||||||
|
# 50 52
|
||||||
|
# 51 53
|
||||||
|
# ... ...
|
||||||
|
# 96 98
|
||||||
|
# 97 99
|
||||||
|
# 98 50
|
||||||
|
# 99 51
|
||||||
|
|
||||||
|
# With this map, you can look up the soil number required for each initial seed
|
||||||
|
# number:
|
||||||
|
|
||||||
|
# Seed number 79 corresponds to soil number 81.
|
||||||
|
# Seed number 14 corresponds to soil number 14.
|
||||||
|
# Seed number 55 corresponds to soil number 57.
|
||||||
|
# Seed number 13 corresponds to soil number 13.
|
||||||
|
|
||||||
|
# The gardener and his team want to get started as soon as possible, so they'd
|
||||||
|
# like to know the closest location that needs a seed. Using these maps, find
|
||||||
|
# the lowest location number that corresponds to any of the initial seeds. To do
|
||||||
|
# this, you'll need to convert each seed number through other categories until
|
||||||
|
# you can find its corresponding location number. In this example, the
|
||||||
|
# corresponding types are:
|
||||||
|
|
||||||
|
# Seed 79, soil 81, fertilizer 81, water 81, light 74, temperature 78,
|
||||||
|
# humidity 78, location 82.
|
||||||
|
# Seed 14, soil 14, fertilizer 53, water 49, light 42, temperature 42,
|
||||||
|
# humidity 43, location 43.
|
||||||
|
# Seed 55, soil 57, fertilizer 57, water 53, light 46, temperature 82,
|
||||||
|
# humidity 82, location 86.
|
||||||
|
# Seed 13, soil 13, fertilizer 52, water 41, light 34, temperature 34,
|
||||||
|
# humidity 35, location 35.
|
||||||
|
|
||||||
|
# So, the lowest location number in this example is 35.
|
||||||
|
|
||||||
|
# What is the lowest location number that corresponds to any of the initial seed
|
||||||
|
# numbers?
|
||||||
|
|
||||||
|
with open("files/P5.txt") as f:
|
||||||
|
almanac = [line for line in f.read().strip().split("\n\n")]
|
||||||
|
|
||||||
|
seed, *maps = almanac
|
||||||
|
seeds = [int(s) for s in seed.split(":")[1].split()]
|
||||||
|
mappings = [
|
||||||
|
[[int(i) for i in line.split()] for line in m.splitlines()[1:]]
|
||||||
|
for m in maps
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def part1():
|
||||||
|
locations = seeds
|
||||||
|
for mapping in mappings:
|
||||||
|
new_locations = []
|
||||||
|
for location in locations:
|
||||||
|
new_val = location
|
||||||
|
for destination, start, size in mapping:
|
||||||
|
if start <= location < start + size:
|
||||||
|
new_val = location - start + destination
|
||||||
|
break
|
||||||
|
new_locations.append(new_val)
|
||||||
|
locations = new_locations
|
||||||
|
|
||||||
|
print(f"The lowest location is {min(locations)}")
|
||||||
|
|
||||||
|
|
||||||
|
# --- Part Two ---
|
||||||
|
|
||||||
|
# Everyone will starve if you only plant such a small number of seeds.
|
||||||
|
# Re-reading the almanac, it looks like the seeds: line actually describes
|
||||||
|
# ranges of seed numbers.
|
||||||
|
|
||||||
|
# The values on the initial seeds: line come in pairs. Within each pair, the
|
||||||
|
# first value is the start of the range and the second value is the length of
|
||||||
|
# the range. So, in the first line of the example above:
|
||||||
|
|
||||||
|
# seeds: 79 14 55 13
|
||||||
|
|
||||||
|
# This line describes two ranges of seed numbers to be planted in the garden.
|
||||||
|
# The first range starts with seed number 79 and contains 14 values: 79, 80,
|
||||||
|
# ..., 91, 92. The second range starts with seed number 55 and contains 13
|
||||||
|
# values: 55, 56, ..., 66, 67.
|
||||||
|
|
||||||
|
# Now, rather than considering four seed numbers, you need to consider a total
|
||||||
|
# of 27 seed numbers.
|
||||||
|
|
||||||
|
# In the above example, the lowest location number can be obtained from seed
|
||||||
|
# number 82, which corresponds to soil 84, fertilizer 84, water 84, light 77,
|
||||||
|
# temperature 45, humidity 46, and location 46. So, the lowest location number
|
||||||
|
# is 46.
|
||||||
|
|
||||||
|
# Consider all of the initial seed numbers listed in the ranges on the first
|
||||||
|
# line of the almanac. What is the lowest location number that corresponds to
|
||||||
|
# any of the initial seed numbers?
|
||||||
|
|
||||||
|
|
||||||
|
def get_ranges(span_start, span_end, map_start, map_end):
|
||||||
|
if span_start < map_start and map_end < span_end:
|
||||||
|
return [(map_start, map_end)], [
|
||||||
|
(span_start, map_start - 1),
|
||||||
|
(map_end + 1, span_end),
|
||||||
|
]
|
||||||
|
elif map_start <= span_start and span_end <= map_end:
|
||||||
|
return [(span_start, span_end)], []
|
||||||
|
elif span_start < map_start <= span_end:
|
||||||
|
return [(map_start, span_end)], [(span_start, map_start - 1)]
|
||||||
|
elif span_start <= map_end < span_end:
|
||||||
|
return [(span_start, map_end)], [(map_end + 1, span_end)]
|
||||||
|
else:
|
||||||
|
return [], [(span_start, span_end)]
|
||||||
|
|
||||||
|
|
||||||
|
new_mappings = [
|
||||||
|
[
|
||||||
|
[destination - start, start, start + size - 1]
|
||||||
|
for destination, start, size in m
|
||||||
|
]
|
||||||
|
for m in mappings
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def part2():
|
||||||
|
ranges = [
|
||||||
|
(seeds[i], seeds[i] + seeds[i + 1] - 1)
|
||||||
|
for i in range(0, len(seeds), 2)
|
||||||
|
]
|
||||||
|
|
||||||
|
for mapping in new_mappings:
|
||||||
|
new_ranges = []
|
||||||
|
for seed_span in ranges:
|
||||||
|
unprocessed = [seed_span]
|
||||||
|
for offset, map_start, map_end in mapping:
|
||||||
|
new_unprocessed = []
|
||||||
|
for span_start, span_end in unprocessed:
|
||||||
|
map1, map2 = get_ranges(
|
||||||
|
span_start, span_end, map_start, map_end
|
||||||
|
)
|
||||||
|
new_unprocessed += map2
|
||||||
|
new_ranges += [(a + offset, b + offset) for a, b in map1]
|
||||||
|
unprocessed = new_unprocessed
|
||||||
|
new_ranges += unprocessed
|
||||||
|
ranges = new_ranges
|
||||||
|
|
||||||
|
print(f"The lowest location is {min(idx for idx, _ in ranges)}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
part1()
|
||||||
|
part2()
|
||||||
152
src/Year_2023/Day06.py
Normal file
152
src/Year_2023/Day06.py
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
# --- Day 6: Wait For It ---
|
||||||
|
|
||||||
|
# The ferry quickly brings you across Island Island. After asking around, you
|
||||||
|
# discover that there is indeed normally a large pile of sand somewhere near
|
||||||
|
# here, but you don't see anything besides lots of water and the small island
|
||||||
|
# where the ferry has docked.
|
||||||
|
|
||||||
|
# As you try to figure out what to do next, you notice a poster on a wall near
|
||||||
|
# the ferry dock. "Boat races! Open to the public! Grand prize is an
|
||||||
|
# all-expenses-paid trip to Desert Island!" That must be where the sand comes
|
||||||
|
# from! Best of all, the boat races are starting in just a few minutes.
|
||||||
|
|
||||||
|
# You manage to sign up as a competitor in the boat races just in time. The
|
||||||
|
# organizer explains that it's not really a traditional race - instead, you will
|
||||||
|
# get a fixed amount of time during which your boat has to travel as far as it
|
||||||
|
# can, and you win if your boat goes the farthest.
|
||||||
|
|
||||||
|
# As part of signing up, you get a sheet of paper (your puzzle input) that lists
|
||||||
|
# the time allowed for each race and also the best distance ever recorded in
|
||||||
|
# that race. To guarantee you win the grand prize, you need to make sure you go
|
||||||
|
# farther in each race than the current record holder.
|
||||||
|
|
||||||
|
# The organizer brings you over to the area where the boat races are held. The
|
||||||
|
# boats are much smaller than you expected - they're actually toy boats, each
|
||||||
|
# with a big button on top. Holding down the button charges the boat, and
|
||||||
|
# releasing the button allows the boat to move. Boats move faster if their
|
||||||
|
# button was held longer, but time spent holding the button counts against the
|
||||||
|
# total race time. You can only hold the button at the start of the race, and
|
||||||
|
# boats don't move until the button is released.
|
||||||
|
|
||||||
|
# For example:
|
||||||
|
|
||||||
|
# Time: 7 15 30
|
||||||
|
# Distance: 9 40 200
|
||||||
|
|
||||||
|
# This document describes three races:
|
||||||
|
|
||||||
|
# The first race lasts 7 milliseconds. The record distance in this race is
|
||||||
|
# 9 millimeters.
|
||||||
|
# The second race lasts 15 milliseconds. The record distance in this race is
|
||||||
|
# 40 millimeters.
|
||||||
|
# The third race lasts 30 milliseconds. The record distance in this race is
|
||||||
|
# 200 millimeters.
|
||||||
|
|
||||||
|
# Your toy boat has a starting speed of zero millimeters per millisecond. For
|
||||||
|
# each whole millisecond you spend at the beginning of the race holding down the
|
||||||
|
# button, the boat's speed increases by one millimeter per millisecond.
|
||||||
|
|
||||||
|
# So, because the first race lasts 7 milliseconds, you only have a few options:
|
||||||
|
|
||||||
|
# Don't hold the button at all (that is, hold it for 0 milliseconds) at the
|
||||||
|
# start of the race. The boat won't move; it will have traveled 0 millimeters by
|
||||||
|
# the end of the race.
|
||||||
|
# Hold the button for 1 millisecond at the start of the race. Then, the boat
|
||||||
|
# will travel at a speed of 1 millimeter per millisecond for 6 milliseconds,
|
||||||
|
# reaching a total distance traveled of 6 millimeters.
|
||||||
|
# Hold the button for 2 milliseconds, giving the boat a speed of 2
|
||||||
|
# millimeters per millisecond. It will then get 5 milliseconds to move, reaching
|
||||||
|
# a total distance of 10 millimeters.
|
||||||
|
# Hold the button for 3 milliseconds. After its remaining 4 milliseconds of
|
||||||
|
# travel time, the boat will have gone 12 millimeters.
|
||||||
|
# Hold the button for 4 milliseconds. After its remaining 3 milliseconds of
|
||||||
|
# travel time, the boat will have gone 12 millimeters.
|
||||||
|
# Hold the button for 5 milliseconds, causing the boat to travel a total of
|
||||||
|
# 10 millimeters.
|
||||||
|
# Hold the button for 6 milliseconds, causing the boat to travel a total of
|
||||||
|
# 6 millimeters.
|
||||||
|
# Hold the button for 7 milliseconds. That's the entire duration of the
|
||||||
|
# race. You never let go of the button. The boat can't move until you let go of
|
||||||
|
# the button. Please make sure you let go of the button so the boat gets to
|
||||||
|
# move. 0 millimeters.
|
||||||
|
|
||||||
|
# Since the current record for this race is 9 millimeters, there are actually 4
|
||||||
|
# different ways you could win: you could hold the button for 2, 3, 4, or 5
|
||||||
|
# milliseconds at the start of the race.
|
||||||
|
|
||||||
|
# In the second race, you could hold the button for at least 4 milliseconds and
|
||||||
|
# at most 11 milliseconds and beat the record, a total of 8 different ways to
|
||||||
|
# win.
|
||||||
|
|
||||||
|
# In the third race, you could hold the button for at least 11 milliseconds and
|
||||||
|
# no more than 19 milliseconds and still beat the record, a total of 9 ways you
|
||||||
|
# could win.
|
||||||
|
|
||||||
|
# To see how much margin of error you have, determine the number of ways you can
|
||||||
|
# beat the record in each race; in this example, if you multiply these values
|
||||||
|
# together, you get 288 (4 * 8 * 9).
|
||||||
|
|
||||||
|
# Determine the number of ways you could beat the record in each race. What do
|
||||||
|
# you get if you multiply these numbers together?
|
||||||
|
|
||||||
|
with open("files/P6.txt") as f:
|
||||||
|
times, distances = [line for line in f.read().strip().split("\n")]
|
||||||
|
|
||||||
|
times = [int(t) for t in times.split(":")[1].split()]
|
||||||
|
distances = [int(d) for d in distances.split(":")[1].split()]
|
||||||
|
|
||||||
|
|
||||||
|
def part1():
|
||||||
|
total = 1
|
||||||
|
for idx, time in enumerate(times):
|
||||||
|
res = 0
|
||||||
|
for t in range(time):
|
||||||
|
d = t * (time - t)
|
||||||
|
if d > distances[idx]:
|
||||||
|
res += 1
|
||||||
|
total *= res
|
||||||
|
|
||||||
|
print(f"There are {total} ways of beating the record")
|
||||||
|
|
||||||
|
|
||||||
|
# --- Part Two ---
|
||||||
|
|
||||||
|
# As the race is about to start, you realize the piece of paper with race times
|
||||||
|
# and record distances you got earlier actually just has very bad kerning.
|
||||||
|
# There's really only one race - ignore the spaces between the numbers on each
|
||||||
|
# line.
|
||||||
|
|
||||||
|
# So, the example from before:
|
||||||
|
|
||||||
|
# Time: 7 15 30
|
||||||
|
# Distance: 9 40 200
|
||||||
|
|
||||||
|
# ...now instead means this:
|
||||||
|
|
||||||
|
# Time: 71530
|
||||||
|
# Distance: 940200
|
||||||
|
|
||||||
|
# Now, you have to figure out how many ways there are to win this single race.
|
||||||
|
# In this example, the race lasts for 71530 milliseconds and the record distance
|
||||||
|
# you need to beat is 940200 millimeters. You could hold the button anywhere
|
||||||
|
# from 14 to 71516 milliseconds and beat the record, a total of 71503 ways!
|
||||||
|
|
||||||
|
# How many ways can you beat the record in this one much longer race?
|
||||||
|
|
||||||
|
time = int("".join(str(t) for t in times))
|
||||||
|
distance = int("".join(str(d) for d in distances))
|
||||||
|
|
||||||
|
|
||||||
|
def part2():
|
||||||
|
total = 0
|
||||||
|
for t in range(time):
|
||||||
|
d = t * (time - t)
|
||||||
|
if d > distance:
|
||||||
|
total += 1
|
||||||
|
|
||||||
|
print(f"There are {total} ways of beating the record")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
part1()
|
||||||
|
part2()
|
||||||
237
src/Year_2023/files/P5.txt
Normal file
237
src/Year_2023/files/P5.txt
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
seeds: 4188359137 37519573 3736161691 172346126 2590035450 66446591 209124047 106578880 1404892542 30069991 3014689843 117426545 2169439765 226325492 1511958436 177344330 1822605035 51025110 382778843 823998526
|
||||||
|
|
||||||
|
seed-to-soil map:
|
||||||
|
1014943420 3864598346 36796924
|
||||||
|
3481858860 1134944893 176050938
|
||||||
|
1463359964 377309295 172917932
|
||||||
|
1909673912 2511534001 114785858
|
||||||
|
3472030089 1310995831 9828771
|
||||||
|
188280292 3055921442 55776498
|
||||||
|
352078282 1410745074 662865138
|
||||||
|
1436499332 3759669547 26860632
|
||||||
|
281816159 550227227 70262123
|
||||||
|
2940933503 180112079 197197216
|
||||||
|
3314718477 977633281 157311612
|
||||||
|
3269652387 3354932755 45066090
|
||||||
|
3138688421 4164003330 130963966
|
||||||
|
3689427547 3407181792 70304018
|
||||||
|
2673867052 3901395270 21291616
|
||||||
|
3881132258 2371714487 139819514
|
||||||
|
180112079 3751501334 8168213
|
||||||
|
2471524173 3399998845 7182947
|
||||||
|
244056790 3826838977 37759369
|
||||||
|
2330362750 620489350 141161423
|
||||||
|
1730119344 3786530179 40308798
|
||||||
|
1770428142 4040990485 122455143
|
||||||
|
1892883285 4024199858 16790627
|
||||||
|
3657909798 2340196738 31517749
|
||||||
|
1365072738 2268770144 71426594
|
||||||
|
1636277896 3930358410 93841448
|
||||||
|
1173574466 2626319859 183826748
|
||||||
|
3871069976 3233532062 10062282
|
||||||
|
3138130719 4163445628 557702
|
||||||
|
3759731565 3243594344 111338411
|
||||||
|
1357401214 3922686886 7671524
|
||||||
|
2478707120 2073610212 195159932
|
||||||
|
2695158668 2810146607 245774835
|
||||||
|
1051740344 3111697940 121834122
|
||||||
|
2024459770 761650773 215982508
|
||||||
|
2240442278 1320824602 89920472
|
||||||
|
4020951772 3477485810 274015524
|
||||||
|
|
||||||
|
soil-to-fertilizer map:
|
||||||
|
3211509025 2411974869 518394
|
||||||
|
3778955089 2412493263 120143427
|
||||||
|
1387254723 3589309701 265617279
|
||||||
|
3899098516 3906385182 120055953
|
||||||
|
1714049028 3209939839 261248850
|
||||||
|
3687768172 2393589437 18385432
|
||||||
|
554325135 488411873 327969675
|
||||||
|
2579624415 1520719313 60457941
|
||||||
|
4019154469 1244906486 275812827
|
||||||
|
65913262 0 488411873
|
||||||
|
1244906486 2362023384 31566053
|
||||||
|
2251369843 4026441135 268526161
|
||||||
|
0 826989738 65913262
|
||||||
|
3737515035 2233559302 41440054
|
||||||
|
1975297878 2563998121 276071965
|
||||||
|
3606812793 2152603923 80955379
|
||||||
|
3706153604 2532636690 31361431
|
||||||
|
1327930741 2336176382 25847002
|
||||||
|
3262441387 2840070086 276664362
|
||||||
|
1353777743 3176462859 33476980
|
||||||
|
1007455475 962102883 213088648
|
||||||
|
3212027419 3538895733 50413968
|
||||||
|
2519896004 3116734448 59728411
|
||||||
|
938255592 892903000 69199883
|
||||||
|
3539105749 3471188689 67707044
|
||||||
|
2640082356 1581177254 571426669
|
||||||
|
927647402 816381548 10608190
|
||||||
|
882294810 1175191531 45352592
|
||||||
|
1652872002 2274999356 61177026
|
||||||
|
1276472539 3854926980 51458202
|
||||||
|
|
||||||
|
fertilizer-to-water map:
|
||||||
|
3919934952 4034286493 116558226
|
||||||
|
3104838986 886102234 15848522
|
||||||
|
151486725 1109841455 112301087
|
||||||
|
38656834 2035810690 62773281
|
||||||
|
1106567462 3087125934 135164894
|
||||||
|
1010741746 2114463748 17027276
|
||||||
|
1428501666 0 69192244
|
||||||
|
1241732356 699332924 186769310
|
||||||
|
728534624 1829633882 45432965
|
||||||
|
465497393 318840419 263037231
|
||||||
|
263787812 69192244 201709581
|
||||||
|
1750247416 2131491024 226195640
|
||||||
|
3103410010 1396336613 1428976
|
||||||
|
1541007057 2541565636 209240359
|
||||||
|
2557596892 1222142542 146760701
|
||||||
|
3810606692 4150844719 109328260
|
||||||
|
1497693910 2098583971 15879777
|
||||||
|
2027240691 1925694260 110116430
|
||||||
|
3120687508 1664856712 30800728
|
||||||
|
2919531038 2357686664 183878972
|
||||||
|
2271333563 2800862605 286263329
|
||||||
|
0 660676090 38656834
|
||||||
|
121820432 2771196312 29666293
|
||||||
|
773967589 1428082555 236774157
|
||||||
|
2137357121 1695657440 133976442
|
||||||
|
2704357593 270901825 47938594
|
||||||
|
2782613153 952748391 136917885
|
||||||
|
4200808114 3619712494 94159182
|
||||||
|
1513573687 1368903243 27433370
|
||||||
|
3151488236 1875066847 50627413
|
||||||
|
4036493178 4260172979 34794317
|
||||||
|
1027769022 581877650 78798440
|
||||||
|
3202115649 1089666276 20175179
|
||||||
|
4071287495 3713871676 33593925
|
||||||
|
1976443056 901950756 50797635
|
||||||
|
2752296187 1397765589 30316966
|
||||||
|
101430115 2750805995 20390317
|
||||||
|
4104881420 3523785800 95926694
|
||||||
|
3523785800 3747465601 286820892
|
||||||
|
|
||||||
|
water-to-light map:
|
||||||
|
3408155249 2527370950 73535457
|
||||||
|
1697763259 1358503385 195569028
|
||||||
|
4146691798 4150439777 2978835
|
||||||
|
1667104621 3141702962 30658638
|
||||||
|
3109198454 2600906407 225322957
|
||||||
|
2896907826 3481425874 212290628
|
||||||
|
3568598531 1256359145 28510402
|
||||||
|
1021594560 3172361600 54292616
|
||||||
|
2709047387 0 23043868
|
||||||
|
634713149 1912815102 64867237
|
||||||
|
2732091255 3693716502 115595269
|
||||||
|
4005143114 4153418612 141548684
|
||||||
|
1341220299 1554072413 325884322
|
||||||
|
3514549073 2826229364 54049458
|
||||||
|
1113545862 2299696513 227674437
|
||||||
|
3481690706 1879956735 32858367
|
||||||
|
379941491 3226654216 254771658
|
||||||
|
4149670633 4005143114 145296663
|
||||||
|
699580386 1977682339 322014174
|
||||||
|
2847686524 2880278822 49221302
|
||||||
|
1075887176 23043868 37658686
|
||||||
|
3334521411 1284869547 73633838
|
||||||
|
3597108933 2929500124 212202838
|
||||||
|
1893332287 440644045 815715100
|
||||||
|
0 60702554 379941491
|
||||||
|
|
||||||
|
light-to-temperature map:
|
||||||
|
3239555722 2588818955 376881377
|
||||||
|
413170934 1615450109 438931580
|
||||||
|
1386539780 3880234113 95792562
|
||||||
|
3901352290 2965700332 122376625
|
||||||
|
2415511159 396206595 236868242
|
||||||
|
396206595 3092807515 16964339
|
||||||
|
2652379401 633074837 587176321
|
||||||
|
1998109231 1220251158 178061188
|
||||||
|
2176170419 3109771854 239340740
|
||||||
|
852102514 2054381689 534437266
|
||||||
|
1806003521 3349112594 192105710
|
||||||
|
1487062900 3976026675 318940621
|
||||||
|
1482332342 3088076957 4730558
|
||||||
|
3616437099 3687776838 138356657
|
||||||
|
3754793756 3541218304 146558534
|
||||||
|
4077829533 1398312346 217137763
|
||||||
|
4023728915 3826133495 54100618
|
||||||
|
|
||||||
|
temperature-to-humidity map:
|
||||||
|
2477444013 1065021126 6182773
|
||||||
|
845330217 1308005650 445611689
|
||||||
|
1290941906 3378900568 76961272
|
||||||
|
2975821403 1792935684 125881029
|
||||||
|
2161173272 2394771508 172817491
|
||||||
|
2483626786 3710234886 492194617
|
||||||
|
3447920062 2383111679 11659829
|
||||||
|
4033768577 1918816713 94002198
|
||||||
|
3319210784 3455861840 27565379
|
||||||
|
1373852246 1071203899 92358857
|
||||||
|
3101702432 845330217 174648768
|
||||||
|
2026258159 2567588999 134915113
|
||||||
|
1799450492 3483427219 226807667
|
||||||
|
3552117684 3041692569 337207999
|
||||||
|
3889325683 1163562756 144442894
|
||||||
|
3346776163 2047917336 101143899
|
||||||
|
3459579891 4202429503 92537793
|
||||||
|
0 348737431 60744241
|
||||||
|
1367903178 2829658946 5949068
|
||||||
|
1466211103 2702504112 127154834
|
||||||
|
1764704299 2835608014 34746193
|
||||||
|
60744241 322208375 20457270
|
||||||
|
1593365937 2870354207 171338362
|
||||||
|
81201511 342665645 6071786
|
||||||
|
4255648951 1753617339 39318345
|
||||||
|
2442345588 2012818911 35098425
|
||||||
|
2333990763 2231897270 108354825
|
||||||
|
87273297 0 322208375
|
||||||
|
4210606810 1019978985 45042141
|
||||||
|
3276351200 2340252095 42859584
|
||||||
|
4127770775 2149061235 82836035
|
||||||
|
|
||||||
|
humidity-to-location map:
|
||||||
|
4164635022 1854717524 130332274
|
||||||
|
1293632444 529805154 119897086
|
||||||
|
2886189584 4227662016 67305280
|
||||||
|
2977935483 447338344 82466810
|
||||||
|
1796689277 771172820 2500486
|
||||||
|
3592167651 2376391709 149158288
|
||||||
|
85140393 196642481 8447522
|
||||||
|
1799189763 1985049798 97611367
|
||||||
|
93587915 82281848 114360633
|
||||||
|
1191989560 4020597507 76356570
|
||||||
|
2953494864 3996156888 24440619
|
||||||
|
2292169251 649702240 113196341
|
||||||
|
3741325939 3311723608 237145571
|
||||||
|
3978471510 3948521384 47635504
|
||||||
|
2457376544 762898581 6077326
|
||||||
|
1413529530 768975907 2196913
|
||||||
|
1268346130 3923235070 25286314
|
||||||
|
4064092089 3749326886 100542933
|
||||||
|
2463453870 3849869819 73365251
|
||||||
|
2858545 0 82281848
|
||||||
|
4026107014 4166840403 37985075
|
||||||
|
3060402293 223340676 11429685
|
||||||
|
0 205090003 2858545
|
||||||
|
3071831978 1031969734 125782276
|
||||||
|
895745297 2082661165 83676280
|
||||||
|
513318799 1318499280 382426498
|
||||||
|
2536819121 3548869179 86842399
|
||||||
|
2405365592 1157752010 52010952
|
||||||
|
2086131564 3105685921 206037687
|
||||||
|
1972516256 3635711578 113615308
|
||||||
|
3197614254 2921186788 184499133
|
||||||
|
3382113387 2166337445 210054264
|
||||||
|
383000830 933333460 37595105
|
||||||
|
2777453266 1209762962 108736318
|
||||||
|
443432473 4096954077 69886326
|
||||||
|
1461500584 2540223954 335188693
|
||||||
|
1415726443 2875412647 45774141
|
||||||
|
420595935 4204825478 22836538
|
||||||
|
979421577 234770361 212567983
|
||||||
|
223340676 773673306 159660154
|
||||||
|
1911475087 970928565 61041169
|
||||||
|
1896801130 2525549997 14673957
|
||||||
|
2623661520 1700925778 153791746
|
||||||
2
src/Year_2023/files/P6.txt
Normal file
2
src/Year_2023/files/P6.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Time: 61 70 90 66
|
||||||
|
Distance: 643 1184 1362 1041
|
||||||
Reference in New Issue
Block a user