31 lines
498 B
Python
31 lines
498 B
Python
from lib import get_data
|
|
from functools import cache
|
|
|
|
data = get_data(__file__)
|
|
lines = data.splitlines()
|
|
patterns = set(lines[0].split(", "))
|
|
|
|
|
|
@cache
|
|
def valid(line):
|
|
if line == "":
|
|
return 1
|
|
r = 0
|
|
for j in range(1, len(line) + 1):
|
|
sub = line[:j]
|
|
if sub in patterns:
|
|
r += valid(line[j:])
|
|
return r
|
|
|
|
|
|
p1, p2 = 0, 0
|
|
lines = lines[2:]
|
|
for line in lines:
|
|
v = valid(line.strip())
|
|
if v > 0:
|
|
p1 += 1
|
|
p2 += v
|
|
|
|
print(p1)
|
|
print(p2)
|