fork(2) download
  1. def f(p):
  2. p=map(lambda s:map(lambda d:d==3*(' ',)and(0,-1)or(int(d[0]+d[1]),'><^v'.index(d[2])),zip(s[::3],s[1::3],s[2::3])),p);x,y=max([(x,y)for x in range(len(p[0]))for y in range(len(p))],key=lambda(x,y):p[y][x][0]);r=o=0
  3. try:
  4. while 1:
  5. 1/(y*x>=0);d=p[y][x]
  6. if-1<d[1]:r=eval('r%sd[0]'%'+-*/'[o]);o=d[1];a=(-(o==1),1)[o<1];b=(-(o==2),1)[o>2]
  7. x+=a;y+=b
  8. except:print r
  9.  
  10. f('''\
  11. 94> 66v
  12. 05v 08<
  13. 43>
  14. 03> 00^'''.split('\n')) # -> 215
  15.  
  16. f('''\
  17. 77> 80v55^02<
  18. 20> 14^'''.split('\n')) # -> -19
  19.  
  20. f('''\
  21. 22>11>15>80>14v
  22. 18^17> 10v
  23. 00^ 90v43^02v
  24. 07^11<15<22v01<'''.split('\n')) # -> -16
  25.  
  26. f('''\
  27. 99>98>97>96>95>94v
  28. 93>92> 91v 03<'''.split('\n')) # -> 102
Success #stdin #stdout 0s 9024KB
stdin
Standard input is empty
stdout
215
-19
-16
102