diff options
Diffstat (limited to '2025/11')
| -rw-r--r-- | 2025/11/a.py | 8 | ||||
| -rw-r--r-- | 2025/11/b.py | 16 |
2 files changed, 23 insertions, 1 deletions
diff --git a/2025/11/a.py b/2025/11/a.py index 5fdb11b..cf06b6a 100644 --- a/2025/11/a.py +++ b/2025/11/a.py | |||
| @@ -1,6 +1,12 @@ | |||
| 1 | import fileinput | 1 | import fileinput |
| 2 | 2 | ||
| 3 | a = {} | ||
| 3 | with fileinput.input() as lines: | 4 | with fileinput.input() as lines: |
| 4 | for line in lines: | 5 | for line in lines: |
| 5 | ... | 6 | v, l2 = line[:-1].split(': ') |
| 7 | a[v] = l2.split(' ') | ||
| 6 | 8 | ||
| 9 | def np(v): | ||
| 10 | return 1 if v == 'out' else sum(np(w) for w in a[v]) | ||
| 11 | |||
| 12 | print(np('you')) | ||
diff --git a/2025/11/b.py b/2025/11/b.py new file mode 100644 index 0000000..8fdcc8b --- /dev/null +++ b/2025/11/b.py | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | import fileinput | ||
| 2 | from functools import cache | ||
| 3 | |||
| 4 | a = {} | ||
| 5 | with fileinput.input() as lines: | ||
| 6 | for line in lines: | ||
| 7 | v, l2 = line[:-1].split(': ') | ||
| 8 | a[v] = l2.split(' ') | ||
| 9 | |||
| 10 | @cache | ||
| 11 | def np(v, d, f): | ||
| 12 | if v == 'out': | ||
| 13 | return 1 if d and f else 0 | ||
| 14 | return sum(np(w, d or v == 'dac', f or v == 'fft') for w in a[v]) | ||
| 15 | |||
| 16 | print(np('svr', False, False)) | ||
