Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: ztmy_
Problemset: fireball
Language: cpp
Time: 0.003 second
Submitted On: 2025-12-02 13:36:15
#include <bits/stdc++.h>
using namespace std;
int n,m,q,ans = 0;
int answers[100] = {0};
int adj_mat[100][100];
bool visited[100][100];
void dfs(int X, int Y){
if (adj_mat[X][Y] == 0) return;
if (visited[X][Y]) return;
visited[X][Y] = true;
adj_mat[X][Y] = 0;
if (X - 1 >= 0) dfs(X-1, Y);
if (X + 1 < n) dfs(X+1, Y);
if (Y - 1 >= 0) dfs(X, Y-1);
if (Y + 1 < m) dfs(X, Y+1);
ans--;
}
int main(){
cin >> n >> m >> q;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++){
cin >> adj_mat[i][j];
if (adj_mat[i][j] == 1) ans++;
}
}
for (int i = 0; i < q; i++){
int x,y;
cin >> x >> y;
x--, y--;
dfs(x, y);
answers[i] = ans;
}
for (int i = 0; i < q; i++){
cout << answers[i] << endl;
}
}