Advertisement
meriellez

Untitled

May 22nd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. int a[101][101], b[101][101], x1[10001], p[10001], n, m, k = 0;
  6.  
  7. void findMinLength(int x, int y){
  8. int min;
  9. for(int i = 0; i < k; i++){
  10. if(b[x][y] == -1){
  11. b[x][y] = abs(x - x1[i]) + abs(y - p[i]);
  12. min = b[x][y];
  13. } else {
  14. int tmp = abs(x - x1[i]) + abs(y - p[i]);
  15. if(tmp < min){
  16. min = tmp;
  17. b[x][y] = min;
  18. }
  19. }
  20. }
  21. }
  22.  
  23. int main() {
  24. // your code goes here
  25. cin >>n >>m;
  26. for(int i = 0; i < n; i++){
  27. for(int j = 0; j < m; j++){
  28. cin >>a[i][j];
  29. if(a[i][j] == 1){
  30. b[i][j] = 0;
  31. x1[k] = i;
  32. p[k] = j;
  33. k++;
  34. } else {
  35. b[i][j] = -1;
  36. }
  37. }
  38. }
  39. for(int i = 0; i < n; i++){
  40. for(int j = 0; j < m; j++){
  41. findMinLength(i,j);
  42. cout <<b[i][j] <<' ';
  43. }
  44. cout <<endl;
  45. }
  46. return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement