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;
}