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:14:31

#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";
    }
}