diff options
Diffstat (limited to '2025')
| -rw-r--r-- | 2025/03/a.py | 16 | ||||
| -rw-r--r-- | 2025/03/b.py | 18 |
2 files changed, 32 insertions, 2 deletions
diff --git a/2025/03/a.py b/2025/03/a.py index 5fdb11b..9f4db62 100644 --- a/2025/03/a.py +++ b/2025/03/a.py | |||
| @@ -1,6 +1,18 @@ | |||
| 1 | import fileinput | 1 | import fileinput |
| 2 | 2 | ||
| 3 | s = 0 | ||
| 3 | with fileinput.input() as lines: | 4 | with fileinput.input() as lines: |
| 4 | for line in lines: | 5 | for line in lines: |
| 5 | ... | 6 | m1 = 0 |
| 6 | 7 | m2 = 0 | |
| 8 | mi = -1 | ||
| 9 | for i in range(len(line)-2): | ||
| 10 | if int(line[i]) > m1: | ||
| 11 | m1 = int(line[i]) | ||
| 12 | mi = i | ||
| 13 | for i in range(mi+1, len(line)-1): | ||
| 14 | if int(line[i]) > m2: | ||
| 15 | m2 = int(line[i]) | ||
| 16 | print(10*m1+m2) | ||
| 17 | s += 10*m1+m2 | ||
| 18 | print(s) | ||
diff --git a/2025/03/b.py b/2025/03/b.py new file mode 100644 index 0000000..4c74ae6 --- /dev/null +++ b/2025/03/b.py | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | import fileinput | ||
| 2 | from functools import cache | ||
| 3 | |||
| 4 | neginf = -1e13 | ||
| 5 | |||
| 6 | @cache | ||
| 7 | def joltage(line, n): | ||
| 8 | if n == 0: | ||
| 9 | return 0 | ||
| 10 | if n > len(line)-1: | ||
| 11 | return neginf | ||
| 12 | j = 0 | ||
| 13 | for i in range(len(line)-1): | ||
| 14 | j = max(j, int(line[i])*10**(n-1)+joltage(line[i+1:],n-1)) | ||
| 15 | return j | ||
| 16 | |||
| 17 | with fileinput.input() as lines: | ||
| 18 | print(sum(joltage(line, 12) for line in lines)) | ||
