Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Quaoar

Problemset: fireball

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-11 17:54:41

#include <bits/stdc++.h>
using namespace std;
vector <vector<int>> grid;
int n ,m ,k;
int cnt;
void re(int x , int y){
    if (grid[x][y] == 0 || grid[x][y] == -1) return;
    grid[x][y] = -1;

    int dy[] = {-1,1,0,0};
    int dx[] = {0,0,-1,1};

    for (int i = 0 ; i < 4 ; i++){
        int nx = x + dx[i];
        int ny = y + dy[i];

        if (nx < 0 || nx >= n || ny < 0 || ny >= m) continue;
        re(nx,ny);
    }
    cnt++;
    return;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> n >> m >> k;
    grid.resize(n , vector<int>(m));
    int cntl = 0;
    for (int i = 0 ; i < n ; i++){
        for (int j = 0 ; j < m ; j++){
            cin >> grid[i][j];
            if (grid[i][j] == 1){
                cntl++;
            }
        }
    }
    for (int i = 0 ; i < k ; i++){
        int a , b;
        cin >> a >> b;
        a--;
        b--;
        cnt = 0;
        re(a , b);
        cntl -= cnt;
        cout << cntl << "\n";
    }
    
    return 0;
}