#include <iostream>
#include <vector>
#include <queue>
using namespace std;
using ll=long long;
int main(){
    ll n,m,ans=0,k,a,b,cur;
    cin>>n>>m;
    vector<vector<ll>> v(n,vector<ll>(m));
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>v[i][j];
        }
    }
    cin>>k;
    bool flag=1;
    for(int i=0;i<k;i++){
        cin>>a>>b;
        cur=0;
        if((a==0&&b==0)||(a==n-1&&b==m-1))flag=0;
        if(a>0&&a<n-1){
            if(b<m-1)cur=max(cur,v[a-1][b]+v[a][b]+v[a+1][b]+v[a][b+1]);
            if(b>0)cur=max(cur,v[a-1][b]+v[a][b]+v[a+1][b]+v[a][b-1]);
            
        }
        if(b>0&&b<m-1){
            if(a<n-1)cur=max(cur,v[a][b]+v[a][b-1]+v[a][b+1]+v[a+1][b]);
            if(a>0)cur=max(cur,v[a][b]+v[a][b-1]+v[a][b+1]+v[a-1][b]);
        }
        ans+=cur;
    }
    if(flag)cout<<ans<<"\n";
    else cout<<"NO\n";
}
| # | 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... |