mfgnik

Untitled

May 14th, 2020
1,895
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.43 KB | None | 0 0
  1. destination_line, destination_column = map(int, input().split())
  2. costs = [list(map(int, input().split())) for k in range(destination_line)]
  3. dynamic = [[0] * destination_column for i in range(destination_line)]
  4. path = [[(0, 0)] * destination_column for i in range(destination_line)]
  5. dynamic[0][0] = costs[0][0]
  6. restored_path = []
  7. for column in range(1, destination_column):
  8.     dynamic[0][column] = dynamic[0][column - 1] + costs[0][column]
  9.     path[0][column] = (0, column - 1)
  10. for line in range(1, destination_line):
  11.     dynamic[line][0] = dynamic[line - 1][0] + costs[line][0]
  12.     path[line][0] = (line - 1, 0)
  13. for line in range(1, destination_line):
  14.     for column in range(1, destination_column):
  15.         if dynamic[line][column - 1] >= dynamic[line - 1][column]:
  16.             dynamic[line][column] = dynamic[line][column - 1] + costs[line][column]
  17.             path[line][column] = (line, column - 1)
  18.         else:
  19.             dynamic[line][column] = dynamic[line - 1][column] + costs[line][column]
  20.             path[line][column] = (line - 1, column)
  21. print(dynamic[destination_line - 1][destination_column - 1])
  22. line = destination_line - 1
  23. column = destination_column - 1
  24. print(path)
  25. while line or column:
  26.     new_line, new_column = path[line][column]
  27.     if line == new_line:
  28.         restored_path.append('R')
  29.     else:
  30.         restored_path.append('D')
  31.     line, column = new_line, new_column
  32. print(*reversed(restored_path))
Advertisement
Add Comment
Please, Sign In to add comment