Submission

Status:

[PP-SSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: Phat12

Problemset: fireball

Language: cpp

Time: 0.002 second

Submitted On: 2025-11-04 19:52:28

/*
TASK: c2_knb64_fireball.cpp
LANG: C++
AUTHOR: Phat
*/
#include <bits/stdc++.h>
#define FO(i,L,R) for (int i = L; i < R; i++)
using namespace std;
int diri[] = {0,0,-1,1};
int dirj[] = {1,-1,0,0};
bitset<101> arr[101];
int n,m,q;
int dfs(int x,int y){
    if (arr[x][y]==0) return 0;
    arr[x][y] = 0;
    int cnt=1;
    for (int i=0;i<4;i++){
        int ii = diri[i]+x , jj = dirj[i]+y;
        if (ii <= 0 || ii > n || jj <= 0 || jj > m || arr[ii][jj] == 0) continue;
        cnt += dfs(ii,jj);
    }
    return cnt;
}
int32_t main(){
    cin.tie(nullptr)->sync_with_stdio(false);
    cin >> n >> m >> q;
    int cnt=0;
    for (int i=1;i<=n;i++){
        for (int j=1;j<=n;j++){
            bool a;
            cin >> a;
            arr[i][j] = a;
            if (a) cnt++;
        }
    }
    while(q--){
        int x,y;
        cin >> x >> y;
        cnt-=dfs(x,y);
        cout << cnt << '\n';
    }


    return 0;
}