Submission
Status:
[PP-SSSSSSSSSSSS]
Score: 0
User: MiyaZaki1072
Problemset: fireball
Language: cpp
Time: 0.002 second
Submitted On: 2025-04-12 20:53:47
#include <bits/stdc++.h>
using namespace std;
#define f first
#define s second
using pii =pair<int,int>;
queue<pii>qu;
int a[150][150],cnt=0,n,m,q;
const int di[] = {0,0,1,-1};
const int dj[] = {1,-1,0,0};
void bfs(int i,int j){
qu.push({i,j});
a[i][j] = 0,cnt--;
while(qu.size()){
pii u =qu.front();qu.pop();
for(int k=0;k<4;k++){
int ii =u.f+di[k];
int jj =u.s+dj[k];
if(ii<1||ii>n||jj<1||jj>m)continue;
if(a[ii][jj]){
a[u.f][u.s]=0,cnt--;
qu.push({ii,jj});
}
}
}
}
int main(){
cin.tie(0)->sync_with_stdio(0);
cin>>n>>m>>q;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
cnt+=a[i][j];
}
}
while(q--){
int x,y;cin>>x>>y;
if(a[x][y])bfs(x,y);
cout<<cnt<<"\n";
}
}