#include #include using namespace std; int main() { int redovi, koloni; cin >> redovi >> koloni; int matrica[redovi][koloni]; int poseteno[redovi][koloni]; int roboti = 0; int direction_i[] = {+1, -1, 0, 0}; int direction_j[] = {0, 0, +1, -1}; for(int i = 0; i < redovi; i++) { for(int j = 0; j < koloni; j++) { cin >> matrica[i][j]; poseteno[i][j] = 0; } } for(int p = 0; p < 50; p++) { int najmal_broj = 50; int si, sj; for(int i = 0; i < redovi; i++) { for(int j = 0; j < koloni; j++) { if(najmal_broj > matrica[i][j] and poseteno[i][j] == 0) { najmal_broj = matrica[i][j]; si = i; sj = j; } } } if(najmal_broj != 50) { queue Q; Q.push(si); Q.push(sj); poseteno[si][sj] = 1; roboti++; while(!Q.empty()) { int ci = Q.front(); Q.pop(); int cj = Q.front(); Q.pop(); for(int k = 0; k < 4; k++) { int ti = ci + direction_i[k]; int tj = cj + direction_j[k]; if(ti >= 0 and ti < redovi and tj >= 0 and tj < koloni and poseteno[ti][tj] == 0 and matrica[ci][cj] <= matrica[ti][tj]) { Q.push(ti); Q.push(tj); poseteno[ti][tj] = 1; } } } } } cout << roboti << endl; return 0; }