Submission
Status:
[PP-SSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Phat12
Problemset: fireball
Language: cpp
Time: 0.002 second
Submitted On: 2025-11-04 19:52:28
/*
TASK: c2_knb64_fireball.cpp
LANG: C++
AUTHOR: Phat
*/
#include <bits/stdc++.h>
#define FO(i,L,R) for (int i = L; i < R; i++)
using namespace std;
int diri[] = {0,0,-1,1};
int dirj[] = {1,-1,0,0};
bitset<101> arr[101];
int n,m,q;
int dfs(int x,int y){
if (arr[x][y]==0) return 0;
arr[x][y] = 0;
int cnt=1;
for (int i=0;i<4;i++){
int ii = diri[i]+x , jj = dirj[i]+y;
if (ii <= 0 || ii > n || jj <= 0 || jj > m || arr[ii][jj] == 0) continue;
cnt += dfs(ii,jj);
}
return cnt;
}
int32_t main(){
cin.tie(nullptr)->sync_with_stdio(false);
cin >> n >> m >> q;
int cnt=0;
for (int i=1;i<=n;i++){
for (int j=1;j<=n;j++){
bool a;
cin >> a;
arr[i][j] = a;
if (a) cnt++;
}
}
while(q--){
int x,y;
cin >> x >> y;
cnt-=dfs(x,y);
cout << cnt << '\n';
}
return 0;
}