#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... |