Submission

Status:

[PPPPPPPPPPPPxSS]

Subtask/Task Score:

{0/100}

Score: 0

User: yypp

Problemset: fireball

Language: cpp

Time: 0.257 second

Submitted On: 2026-03-25 16:21:18

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

int mp[105][105];
queue<pair<int,int> > qe;
int wx[] = {1,-1,0,0};
int wy[] = {0,0,1,-1};

int main() {
    int n,m,q,con=0,x,y,nx,ny,ix,iy;
    cin >> n >> m >> q;
    for (int i=1;i<=n;i++) {
        for (int j=1;j<=m;j++) {
            cin >> mp[i][j];
            if (mp[i][j]==1) {
                con++;
            }
        }
    }
    for (int i=0;i<q;i++) {
        cin >> x >> y;
        if (mp[x][y]==0) {
            cout << con << "\n"; continue;
        }
        qe.push({x,y});
        while(!qe.empty()) {
            nx = qe.front().first; ny = qe.front().second;
            qe.pop();
            //printf("%d %d\n",nx,ny);
            if (mp[nx][ny]==1) {
                con--; mp[nx][ny] = 2;
            }

            for (int i=0;i<4;i++) {
                ix = nx+wx[i]; iy = ny+wy[i];
                //printf("c %d %d\n",ix,iy);
                if (ix>=0&&ix<=n&&iy>=0&&iy<=m&&mp[ix][iy]==1) {
                    //printf("-> %d %d\n",ix,iy);
                    qe.push({ix,iy});
                }
            }
            /*
            for (int i=1;i<=n;i++) {
                for (int j=1;j<=m;j++) {
                    cout << mp[i][j];
                }
                cout << "\n";
            }
            cout << "\n";
            */
        }
        cout << con << "\n";
    }
}