32 lines
617 B
Python
32 lines
617 B
Python
from functools import cache
|
|
def solve(file):
|
|
designs = file.readline().strip().split(", ")
|
|
assert file.readline() == '\n'
|
|
|
|
ds = set(designs)
|
|
|
|
@cache
|
|
def ways(x):
|
|
n = 0
|
|
if x in ds:
|
|
n += 1
|
|
if len(x) > 1:
|
|
for i in range(1,len(x)):
|
|
if x[:i] in ds:
|
|
n += ways(x[i:])
|
|
#print("ways(%s) = %s"%(x,n))
|
|
return n
|
|
|
|
t = 0
|
|
for line in file:
|
|
towel = line.strip()
|
|
w = ways(towel)
|
|
#print(w, towel)
|
|
t += w
|
|
|
|
print(t)
|
|
|
|
|
|
solve(open('sample1.in'))
|
|
solve(open('input'))
|