Submission
Status:
[PP-SSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Quaoar
Problemset: fireball
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-11 17:51:53
#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++;
}
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);
cout << cntl - cnt << "\n";
}
return 0;
}