Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Bune

Problemset: fireball

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-24 21:41:13

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <queue>
using namespace std;

#define fastio ios_base::sync_with_stdio(false); cin.tie(nullptr);
#define ll long long
#define pb push_back
#define all(x) (x).begin(), (x).end()

int main() {
  fastio

  int n, m, z;
  cin >> n >> m >> z;

  vector<vector<int>> v(n + 5, vector<int>(m + 5));

  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      cin >> v[i][j];
    }
  }

  vector<vector<bool>> vis(n + 5, vector<bool>(m + 5, false));
  queue<pair<int, int>> q;

  vector<int> dx = {0, -1, 0, 1};
  vector<int> dy = {-1, 0, 1, 0};

  for (int i = 0; i < z; i++) {
    int x, y;
    cin >> x >> y;

    if (v[x][y] == 1) {
      v[x][y] = 0;
      vis[x][y] = true;
      q.push({x, y});
    }

    while (!q.empty()) {
      auto [u1, v1] = q.front();
      q.pop();

      for (int j = 0; j < 4; j++) {
        int uu = u1 + dx[j];
        int vv = v1 + dy[j];
        
        if (uu < 1 && vv < 1 && uu > n && vv > m) {
          continue;
        }
        if (!vis[uu][vv] && v[uu][vv] == 1) {
          vis[uu][vv] = true;
          v[uu][vv] = 0;
          q.push({uu, vv});
        }
      }
    }

    int cnt = 0;
    for (int k = 1; k <= n; k++) {
      for (int l = 1; l <= m; l++) {
        if (v[k][l] == 1) {
          cnt++;
        }
      }
    }

    cout << cnt << "\n";
  }

  return 0;
}