Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: patty
Problemset: fireball
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-21 22:34:38
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n,m,q,countries=0,a,b;
cin >> n >> m >> q;
vector<vector<int>> globe(n+5,vector<int> (m+5));
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
cin >> globe[i][j];
if(globe[i][j]==1) countries+=1;
}
}
int dx[] = {-1,0,1,0};
int dy[] = {0,1,0,-1};
for(int k=0;k<q;k++) {
cin >> a >> b;
if(globe[a][b]==1) {
queue<pair<int,int>> q;
q.push({a,b});
globe[a][b] = 0;
while(!q.empty()) {
int x = q.front().first;
int y = q.front().second;
q.pop();
countries-=1;
for(int i=0;i<4;i++) {
int xx = x+dx[i];
int yy = y+dy[i];
if(xx<1||yy<1||xx>n||yy>m) continue;
if(globe[xx][yy]==1) {
q.push({xx,yy});
globe[xx][yy] = 0;
}
}
}
}
cout << countries << '\n';
}
return 0;
}