Submission
Status:
[xSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: iij
Problemset: fireball
Language: cpp
Time: 0.003 second
Submitted On: 2025-10-22 22:34:24
#include <iostream>
using namespace std;
int n, m, c=0, dirs[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
void dfsSet0(bool *v, int x, int y) {
*(v+x*m+y) = 0;
c--;
for (auto &d : dirs) {
int nx = x + d[0], ny = y + d[1];
if (nx >= 0 && ny >= 0 && nx < n && ny < m && *(v+nx*m+ny)) dfsSet0(v, nx, ny);
}
}
int main() {
int q;
cin >> n >> m >> q;
bool *v;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
bool t;
cin >> t;
*(v+i*m+j) = t;
if (t) c++;
}
}
while (q--)
{
int x, y;
cin >> x >> y;
x--;y--;
if (*(v+x*m+y)) dfsSet0(v, x, y);
cout << c << "\n";
}
}