Advertisement
mbstanchev

present_delivery

Jan 31st, 2023
654
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.41 KB | None | 0 0
  1. presents = int(input())
  2. size = int(input())
  3. matrix = []
  4. santa_pos = ()
  5. nice_kids = 0
  6. presents_for_nice_kids = 0
  7. out_of_presents = False
  8. for i in range(size):
  9.     matrix.append(input().split())
  10.     for j in range(size):
  11.         if matrix[i][j] == 'S':
  12.             santa_pos = (i, j)
  13.         if matrix[i][j] == 'V':
  14.             nice_kids += 1
  15. directions = {
  16.     "up": (-1, 0),
  17.     "down": (1, 0),
  18.     "left": (0, -1),
  19.     "right": (0, 1),
  20. }
  21. command = input()
  22. while command != 'Christmas morning' and presents > 0:
  23.     matrix[santa_pos[0]][santa_pos[1]] = '-'
  24.     next_pos_row = santa_pos[0] + directions[command][0]
  25.     next_pos_col = santa_pos[1] + directions[command][1]
  26.     if not (0 <= next_pos_row < len(matrix) and 0 <= next_pos_col < len(matrix)):
  27.         command = input()
  28.         continue
  29.     santa_pos = (next_pos_row, next_pos_col)
  30.     if matrix[santa_pos[0]][santa_pos[1]] == 'X':
  31.         matrix[santa_pos[0]][santa_pos[1]] = '-'
  32.         command = input()
  33.         continue
  34.     if matrix[santa_pos[0]][santa_pos[1]] == 'V':
  35.         matrix[santa_pos[0]][santa_pos[1]] = '-'
  36.         presents -= 1
  37.         presents_for_nice_kids += 1
  38.  
  39.     elif matrix[santa_pos[0]][santa_pos[1]] == 'C':
  40.         matrix[santa_pos[0]][santa_pos[1]] = '-'
  41.         for direction in directions:
  42.             give_presents_row = santa_pos[0] + directions[direction][0]
  43.             give_presents_col = santa_pos[1] + directions[direction][1]
  44.             if matrix[give_presents_row][give_presents_col] == 'V':
  45.                 matrix[give_presents_row][give_presents_col] = '-'
  46.                 presents -= 1
  47.                 presents_for_nice_kids += 1
  48.             elif matrix[give_presents_row][give_presents_col] == 'X':
  49.                 matrix[give_presents_row][give_presents_col] = '-'
  50.                 presents -= 1
  51.             if presents == 0 or presents_for_nice_kids == nice_kids:
  52.                 out_of_presents = True
  53.                 break
  54.  
  55.     matrix[santa_pos[0]][santa_pos[1]] = 'S'
  56.     if out_of_presents or presents_for_nice_kids == nice_kids:
  57.         break
  58.     command = input()
  59.  
  60. if presents == 0 and presents_for_nice_kids < nice_kids:
  61.     print('Santa ran out of presents!')
  62. for row in matrix:
  63.     print(*row, sep=' ')
  64.  
  65. if presents_for_nice_kids == nice_kids:
  66.     print(f'Good job, Santa! {nice_kids} happy nice kid/s.')
  67. else:
  68.     print(f'No presents for {nice_kids - presents_for_nice_kids} nice kid/s.')
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement