Advertisement
Josif_tepe

Untitled

May 20th, 2022
1,136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.63 KB | None | 0 0
  1. #include <iostream>
  2. #include <queue>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.     int redovi, koloni;
  8.     cin >> redovi >> koloni;
  9.     int matrica[redovi][koloni];
  10.     int poseteno[redovi][koloni];
  11.     int roboti = 0;
  12.     int direction_i[] = {+1, -1, 0, 0};
  13.     int direction_j[] = {0, 0,   +1, -1};
  14.     for(int i = 0; i < redovi; i++) {
  15.         for(int j = 0; j < koloni; j++) {
  16.             cin >> matrica[i][j];
  17.             poseteno[i][j] = 0;
  18.         }
  19.     }
  20.     for(int p = 0; p < 50; p++) {
  21.     int najmal_broj = 50;
  22.     int si, sj;
  23.     for(int i = 0; i < redovi; i++) {
  24.         for(int j = 0; j < koloni; j++) {
  25.             if(najmal_broj > matrica[i][j] and poseteno[i][j] == 0) {
  26.                 najmal_broj = matrica[i][j];
  27.                 si = i;
  28.                 sj = j;
  29.             }
  30.         }
  31.     }
  32.             if(najmal_broj != 50) {
  33.             queue<int> Q;
  34.             Q.push(si);
  35.             Q.push(sj);
  36.             poseteno[si][sj] = 1;
  37.             roboti++;
  38.             while(!Q.empty()) {
  39.             int ci = Q.front();
  40.             Q.pop();
  41.             int cj = Q.front();
  42.             Q.pop();
  43.        
  44.             for(int k = 0; k < 4; k++) {
  45.                 int ti = ci + direction_i[k];
  46.                 int tj = cj + direction_j[k];
  47.                 if(ti >= 0 and ti < redovi and tj >= 0 and tj < koloni and poseteno[ti][tj] == 0 and matrica[ci][cj] <= matrica[ti][tj]) {
  48.                     Q.push(ti);
  49.                     Q.push(tj);
  50.                     poseteno[ti][tj] = 1;
  51.                 }
  52.             }
  53.        
  54.         }
  55.         }
  56.     }
  57.     cout << roboti << endl;
  58.    
  59.     return 0;
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement