選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

25 行
601B

  1. import sys
  2. import toolkit
  3. def advance(path, pos):
  4. digest = toolkit.md5(text + path)
  5. for d in [d for d, c in zip('UDLR', digest) if c in 'bcdef']:
  6. path1 = path + d
  7. new1 = pos + mapping[d]
  8. if 0 <= new1.real <= 3 and 0 <= new1.imag <= 3:
  9. yield path1, new1
  10. text = sys.stdin.read().strip()
  11. mapping = {'U': -1j, 'D': 1j, 'L': -1, 'R': 1}
  12. edge = {('', 0)}
  13. valid = []
  14. while edge:
  15. edge = {new for old in edge for new in advance(*old)}
  16. valid += [new for new in edge if new[1] == 3 + 3j]
  17. edge -= set(valid)
  18. print(valid[0][0])
  19. print(len(valid[-1][0]))