Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- using namespace std;
- int a[101][101], b[101][101], x1[10001], p[10001], n, m, k = 0;
- void findMinLength(int x, int y){
- int min;
- for(int i = 0; i < k; i++){
- if(b[x][y] == -1){
- b[x][y] = abs(x - x1[i]) + abs(y - p[i]);
- min = b[x][y];
- } else {
- int tmp = abs(x - x1[i]) + abs(y - p[i]);
- if(tmp < min){
- min = tmp;
- b[x][y] = min;
- }
- }
- }
- }
- int main() {
- // your code goes here
- cin >>n >>m;
- for(int i = 0; i < n; i++){
- for(int j = 0; j < m; j++){
- cin >>a[i][j];
- if(a[i][j] == 1){
- b[i][j] = 0;
- x1[k] = i;
- p[k] = j;
- k++;
- } else {
- b[i][j] = -1;
- }
- }
- }
- for(int i = 0; i < n; i++){
- for(int j = 0; j < m; j++){
- findMinLength(i,j);
- cout <<b[i][j] <<' ';
- }
- cout <<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement