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;
}