#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
#define forin for(int i = 1; i <= n; i++)
#define stforin for(int i = 0; i < n; i++)
#define forim for(int i = 1; i <= m; i++)
#define forjn for(int j = 1; j <= n; j++)
#define forch(j, n) for(int i = j; i <= n; i++)
#define forch2(i, j, n) for(int i = j; i <= n; i++)
#define forjm for(int j = 1; j <= m; j++)
#define lol long long
#define lb long double
#define endl '\n'
#define IOS ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define debug cout << "Completed" << endl
#define No cout << "No" << endl
#define Yes cout << "Yes" << endl
#define bads cout << -1 << endl
#define fix(n, m) cout << fixed; cout.precision(m); cout << n << endl
#define pll pair<lol, lol>
#define mod 1000000007
#define fst first
#define snd second
#define inf 1e15
#define tofix cin
; string sbuf;
ostringstream buf(sbuf);
istringstream atcin(sbuf);
//priority_queue <pll, vector<pll>, greater<pll>> q
const long long N = 1e6 + 10;
lol ts, n, m, k, v1, v2, ans, m1, m2, m3, m4, ma;
vector<lol> a[N];
lol hmm(int r, int c) {
    if (r < 0 || r >= n || c < 0 || c >= m || a[r][c] == -1) return 0;
    return 1;
}
lol cotum(int r, int c) {
    lol sum = 0;
    sum += a[r][c];
    return sum;
}
void solve() {
    IOS;
    cin >> n >> m;
    stforin {
        a[i].resize(m);
        forch2(j, 0, m-1) cin >> a[i][j];
    }
    cin >> k;
    forch(1, k) {
        cin >> v1 >> v2;
        m1 = m2 = m3 = m4 = -1;
        if (hmm(v1, v2 - 1) && hmm(v1, v2 + 1) && hmm(v1 - 1, v2)) m1 = cotum(v1, v2) + cotum(v1, v2 - 1) + cotum(v1, v2 + 1) + cotum(v1 - 1, v2);
        if (hmm(v1 - 1, v2) && hmm(v1, v2 + 1) && hmm(v1 + 1, v2)) m2 = cotum(v1, v2) + cotum(v1 - 1, v2) + cotum(v1, v2 + 1) + cotum(v1 + 1, v2);
        if (hmm(v1, v2 - 1) && hmm(v1, v2 + 1) && hmm(v1 + 1, v2)) m3 = cotum(v1, v2) + cotum(v1, v2 - 1) + cotum(v1, v2 + 1) + cotum(v1 + 1, v2);
        if (hmm(v1, v2 - 1) && hmm(v1 - 1, v2) && hmm(v1 + 1, v2)) m4 = cotum(v1, v2) + cotum(v1, v2 - 1) + cotum(v1 - 1, v2) + cotum(v1 + 1, v2);
        if (m1 == m2 && m2 == m3 && m3 == m4 && m4 == -1) {
            No;
            return;
        }
        ma = max({ m1, m2, m3 ,m4 });
        a[v1][v2] = -1;
        if (ma == m1) {
            a[v1][v2-1] = -1;
            a[v1][v2+1] = -1;
            a[v1 - 1][v2+1] = -1;
        }
        else if (ma == m2) {
            a[v1 - 1][v2] = -1;
            a[v1][v2 + 1] = -1;
            a[v1 + 1][v2] = -1;
        }
        else if (ma == m3) {
            a[v1][v2 - 1] = -1;
            a[v1][v2 + 1] = -1;
            a[v1 + 1][v2] = -1;
        }
        else if (ma == m4) {
            a[v1][v2 - 1] = -1;
            a[v1 - 1][v2] = -1;
            a[v1 + 1][v2] = -1;
        }
        ans += ma;
    }
    cout << ans << endl;
}
int main() {
    ts = 1;
    //cin >> ts;
    while (ts--) solve();
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |