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