Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: ssss

Problemset: fireball

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-09 22:13:08

#include<bits/stdc++.h>
using namespace std;

vector<vector<int>>arr,v;
int dx[4] = {1,-1,0,0},dy[4] = {0,0,-1,1},m1=0,n,m;

void dfs(int x,int y){
    v[x][y] = 1;
    arr[x][y] = 0;
    for(int i=0;i<4;i++){
        int nx,ny;
        nx = x+dx[i];
        ny = y+dy[i];
        if(nx>=0&&ny>=0&&nx<n&&ny<m&&v[nx][ny]==0&&arr[nx][ny]==1){
            m1++;
            dfs(nx,ny);
        }
    }
}

int main(){
    int n1,n2,c=0,ff;
    cin>>n>>m>>ff;
    arr = vector<vector<int>>(n,vector<int>(m));
    v = vector<vector<int>>(n,vector<int>(m));
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>arr[i][j];
            if(arr[i][j]==1){
                c++;
            }
        }
    }
    for(int i=0;i<ff;i++){
        cin>>n1>>n2;
        if(arr[n1-1][n2-1]==1){
            m1 = 1;
            dfs(n1-1,n2-1);
            c-=m1;
            cout<<c<<"\n";
        }else{
            cout<<c<<"\n";
        }
    }
}