Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Quaoar

Problemset: fireball

Language: cpp

Time: 0.003 second

Submitted On: 2025-12-31 21:48:04

#include <iostream>
using namespace std;
int arr[101][101];
bool visited[101][101];

int n , m , q;
int cnt = 0;

void re(int x , int y){
    if (arr[x][y] == 0) return;
    if (visited[x][y]) return;
    arr[x][y] = 0;
    visited[x][y] = true;
    if (x - 1 >= 0) re(x - 1 , y);
    if (x + 1 < n) re(x + 1 , y);
    if (y - 1 >= 0) re(x , y - 1);
    if (y + 1 < m) re(x , y + 1);
    cnt--;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n >> m >> q;
    for (int i = 0 ; i < n ; i++){
        for (int j = 0 ; j < m ; j++){
            cin >> arr[i][j];
            if (arr[i][j] == 1){
                cnt++;
            }
        }
    }
    int X , Y;
    for (int i = 0 ; i < q ; i++){
        cin >> X >> Y;
        X--;
        Y--;
        re(X,Y);
        cout << cnt << "\n";
    }

    
    return 0;
}