fork download
  1. n, m = map(int, input().split())
  2.  
  3. # Create grid with padding
  4. grid = [[-1] * (m + 2) for _ in range(n + 2)]
  5. fixed = [[0] * (m + 2) for _ in range(n + 2)]
  6.  
  7. # Input (1-indexed)
  8. for i in range(1, n + 1):
  9. row = list(map(int, input().split()))
  10. for j in range(1, m + 1):
  11. grid[i][j] = row[j - 1]
  12.  
  13. # Step 1: Mark fixed cells
  14. for i in range(1, n + 1):
  15. for j in range(1, m + 1):
  16. u = grid[i][j]
  17. c = 0
  18.  
  19. if u == grid[i - 1][j]: c += 1
  20. if u == grid[i + 1][j]: c += 1
  21. if u == grid[i][j - 1]: c += 1
  22. if u == grid[i][j + 1]: c += 1
  23.  
  24. if c >= 2:
  25. fixed[i][j] = 1
  26.  
  27. if u == grid[i - 1][j]: fixed[i - 1][j] = 1
  28. if u == grid[i + 1][j]: fixed[i + 1][j] = 1
  29. if u == grid[i][j - 1]: fixed[i][j - 1] = 1
  30. if u == grid[i][j + 1]: fixed[i][j + 1] = 1
  31.  
  32. # Step 2: Zero out fixed cells
  33. for i in range(1, n + 1):
  34. for j in range(1, m + 1):
  35. if fixed[i][j] == 1:
  36. grid[i][j] = 0
  37.  
  38. # Output result
  39. for i in range(1, n + 1):
  40. for j in range(1, m + 1):
  41. print(grid[i][j], end=" ")
  42. print()
  43.  
  44.  
Success #stdin #stdout 0.11s 14176KB
stdin
4 5
1 2 2 2 3
4 2 2 2 5
6 7 2 8 9
1 2 3 4 5
stdout
1 0 0 0 3 
4 0 0 0 5 
6 7 0 8 9 
1 2 3 4 5