b.py (343B)
1 import fileinput 2 from collections import defaultdict 3 4 with fileinput.input() as lines: 5 rows = [line[:-1] for line in lines] 6 7 pos = {rows[0].find('S'): 1} 8 for row in rows[1:]: 9 newpos = defaultdict(int) 10 for p, w in pos.items(): 11 for pp in [p-1,p+1] if row[p] == '^' else [p]: 12 newpos[pp] += w 13 pos = dict(newpos) 14 15 print(sum(pos.values()))