Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Mano
Problemset: fireball
Language: cpp
Time: 0.004 second
Submitted On: 2025-10-11 10:08:33
#include<iostream>
#include<vector>
using namespace std;
void dfs(vector<vector<int>> &arr,int x,int y,int i,int j){
if(i<0||i>=x||j<0||j>=y||arr[i][j]==0)return;
arr[i][j]=0;
dfs(arr,x,y,i+1,j);
dfs(arr,x,y,i-1,j);
dfs(arr,x,y,i,j+1);
dfs(arr,x,y,i,j-1);
}
int sum(vector<vector<int>> &arr,int x,int y){
int res=0;
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
res+=arr[i][j];
}
}
return res;
}
int main(){
int x,y,z,res;
cin>>x>>y>>z;
vector<vector<int>> arr(x,vector<int>(y,0));
vector<vector<int>> fire(z,vector<int>(2,0));
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
cin>>arr[i][j];
}
}
for(int i=0;i<z;i++){
for(int j=0;j<2;j++){
cin>>fire[i][j];
fire[i][j]-=1;
}
}
for(int i=0;i<z;i++){
int fx=fire[i][0];
int fy=fire[i][1];
if(arr[fx][fy]==1){
dfs(arr,x,y,fx,fy);
}
res=sum(arr,x,y);
cout<<res<<endl;
}
return 0;
}