Submission

Status:

[PPPPPPPPPPPP-SS]

Subtask/Task Score:

{0/100}

Score: 0

User: onlyme910

Problemset: fireball

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-09 19:15:26

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

int mapt[111][111];
int firex[2000];
int firey[2000];
int alive;

int main(){
    int N,M,f;
    cin >> N >> M >> f;
    int castle[f];
    alive = 0;
    for(int i = 0;i<N;i++){
        for(int j = 0;j<M;j++){
            cin >> mapt[i+1][j+1];
            alive += mapt[i+1][j+1];
        }
    }
    for(int i = 0;i<f;i++){
        
        int maxFire = 0;
        cin >> firex[maxFire] >> firey[maxFire];
        int indexFire = 0;
        while (maxFire>=indexFire)
        {
            int x = firex[indexFire],y = firey[indexFire];
            indexFire++;
            if(mapt[x][y] == 1){
                mapt[x][y] = 0;
                alive--;
                
                maxFire++;
                firex[maxFire] = x+1;
                firey[maxFire] = y;

                maxFire++;
                firex[maxFire] = x-1;
                firey[maxFire] = y;

                maxFire++;
                firex[maxFire] = x;
                firey[maxFire] = y+1;

                maxFire++;
                firex[maxFire] = x;
                firey[maxFire] = y-1;
            }
        }
        
        castle[i] = alive;
    }
    for(int i =0;i < f;i++){
        cout << castle[i] << "\n";
    }
}