Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int v, rv, n, m, k;
  5. int a[101][101];
  6.  
  7. void dfs(int x, int y) {
  8.   if (a[x][y] != rv) return;
  9.   a[x][y] = v;
  10.   k++;
  11.  
  12.   if (x > 0 && a[x - 1][y] == rv) dfs(x - 1, y);
  13.   if (x < n - 1 && a[x + 1][y] == rv) dfs(x + 1, y);
  14.   if (y > 0 && a[x][y - 1] == rv) dfs(x, y - 1);
  15.   if (y < m - 1 && a[x][y + 1] == rv) dfs(x, y + 1);
  16. }
  17.  
  18. int main() {
  19.   freopen("input.txt", "r", stdin);
  20.   freopen("output.txt", "w", stdout);
  21.   int xs, ys;
  22.   cin >> n >> m >> ys >> xs >> v;
  23.   k = 0;
  24.   if (ys > -1 && xs > -1) {
  25.     for (int i = 0; i < n; i++) {
  26.       for (int j = 0; j < m; j++) {
  27.         cin >> a[i][j];
  28.       }
  29.     }
  30.     rv = a[xs][ys];
  31.     if (v != rv) dfs(xs, ys);
  32.   }
  33.   cout << k << endl;
  34.   for (int i = 0; i < n; i++) {
  35.     for (int j = 0; j < m; j++) {
  36.       cout << a[i][j] << " ";
  37.     }
  38.     cout << endl;
  39.   }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement