Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: ztmy_

Problemset: fireball

Language: cpp

Time: 0.003 second

Submitted On: 2025-12-02 13:36:15

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

int n,m,q,ans = 0;
int answers[100] = {0};
int adj_mat[100][100];
bool visited[100][100];

void dfs(int X, int Y){
    if (adj_mat[X][Y] == 0) return;
    if (visited[X][Y]) return;
    visited[X][Y] = true;
    adj_mat[X][Y] = 0;
    if (X - 1 >= 0) dfs(X-1, Y);
    if (X + 1 < n) dfs(X+1, Y);
    if (Y - 1 >= 0) dfs(X, Y-1);
    if (Y + 1 < m) dfs(X, Y+1);
    ans--;
}

int main(){
    cin >> n >> m >> q;
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){
            cin >> adj_mat[i][j];
            if (adj_mat[i][j] == 1) ans++;
        }
    }
    for (int i = 0; i < q; i++){
        int x,y;
        cin >> x >> y;
        x--, y--;
        dfs(x, y);
        answers[i] = ans;
    }
    for (int i = 0; i < q; i++){
        cout << answers[i] << endl;
    }
}