Submission
Status:
[-SSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Gump2011
Problemset: fireball
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-08 17:16:14
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int n,m,q;
cin>>n>>m>>q;
vector<vector<int>> a(n+1, vector<int>(m+1));
vector<vector<int>> vis(n+1, vector<int>(m+1,0));
int remain=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
if(a[i][j]==0) remain++;
}
}
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};
while(q--){
int x,y;
cin>>x>>y;
if(a[x][y]==0 && !vis[x][y]){
queue<pair<int,int>> qu;
qu.push({x,y});
vis[x][y]=1;
remain--;
while(!qu.empty()){
pair<int,int> t=qu.front();
qu.pop();
int cx=t.first;
int cy=t.second;
for(int k=0;k<4;k++){
int nx=cx+dx[k];
int ny=cy+dy[k];
if(nx>=1 && nx<=n && ny>=1 && ny<=m){
if(a[nx][ny]==0 && !vis[nx][ny]){
vis[nx][ny]=1;
remain--;
qu.push({nx,ny});
}
}
}
}
}
cout<<remain<<"\n";
}
}