python day 4 and pascal day 6

This commit is contained in:
m 2023-12-06 00:59:01 -05:00
parent 11d60a55a9
commit a4b171a439
6 changed files with 125 additions and 0 deletions

View File

@ -48,5 +48,16 @@ day5part2:
@echo
./build/day5part2
day6part1:
fpc src/day6/part1.pas -obuild/day6part1
@echo
./build/day6part1
day6part2:
fpc src/day6/part2.pas -obuild/day6part2
@echo
./build/day6part2
clean:
rm build/*

11
pythonsrc/day4/part1.py Normal file
View File

@ -0,0 +1,11 @@
print(
sum([[0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512][p] for p in
[sum(
[[b in x[0] for b in x[1]] for x in [
[[int(y) for y in x.strip().split(" ") if len(y) != 0] for x in l.split(':')[1].split("|")]
]][0]
) for l in open("resources/day4.txt").readlines()]
])
)
# sum([[0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512][p] for p in [sum([[b in x[0] for b in x[1]] for x in [[[int(y) for y in x.strip().split(" ") if len(y) != 0] for x in l.split(':')[1].split("|")]]][0]) for l in open("resources/day4.txt").readlines()]])

34
pythonsrc/day4/part2.py Normal file
View File

@ -0,0 +1,34 @@
def print2d(x):
print("\n".join([str(xx) for xx in x]))
a = [sum(
[[b in x[0] for b in x[1]] for x in [
[[int(y) for y in x.strip().split(" ") if len(y) != 0] for x in l.split(':')[1].split("|")]
]][0]
) for l in open("resources/day4.txt").readlines()]
# print(a)
b = [
[d[x] for x in range(20) for d in [a]]
]
e = [2, 1, 1, 0, 0]
# [1, 2, 4, 5, 1]
# [0, 1, 1, 0, 0]
# [0, 0, 1, 0, 0]
# [0, 0, 0, 1, 0]
# [0, 0, 0, 0, 0]
# [0, 0, 0, 0, 0]
p = [[1 if x > c and x < c + 1 + i else 0 for x in range(5)] for c, i in enumerate(e)]
print2d(p)
print(p)
print([
[sum([p[x][y] for x in range(5)]) for y in range(5)]
])

2
resources/day6.txt Normal file
View File

@ -0,0 +1,2 @@
Time: 57 72 69 92
Distance: 291 1172 1176 2026

35
src/day6/part1.pas Normal file
View File

@ -0,0 +1,35 @@
program day5part1;
uses sysutils;
type
SState = (ToColon, WasteSpace, ReadSeeds, NewLine);
MState = (Seed, WaitMap, ReadMap);
var
race_times: array of int32 = (57, 72, 69, 92);
race_distances: array of int32 = (291, 1172, 1176, 2026);
valid: array of int32 = (0, 0, 0, 0);
i, j: int32;
begin
for i := 0 to 3 do
begin
writeln(race_times[i]);
writeln(race_distances[i]);
for j := 1 to race_times[i] do
begin
if (race_times[i] - j) * j > race_distances[i] then
valid[i] := valid[i] + 1
end;
end;
writeln(valid[0] * valid[1] * valid[2] * valid[3])
end.

32
src/day6/part2.pas Normal file
View File

@ -0,0 +1,32 @@
program day5part1;
uses sysutils;
type
SState = (ToColon, WasteSpace, ReadSeeds, NewLine);
MState = (Seed, WaitMap, ReadMap);
var
race_time: int64 = 57726992;
race_distance: int64 = 291117211762026;
valid: int64 = 0;
i, j: int32;
begin
writeln(race_time);
writeln(race_distance);
for j := 1 to race_time do
begin
if (race_time - j) * j > race_distance then
valid := valid + 1
end;
writeln(valid);
end.