#include<bits/stdc++.h>
using namespace std; 
#define int long long 
#pragma GCC optimize("O3,unroll-loops")
const int maxn=1e6;
int a[maxn+2];
bool spec[maxn+2],vis[maxn+2];
int n,m;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
bool ins(int x,int y){
    return (x>=0 && y>=0 && x<n && y<m);
}
vector<int>adj[maxn+2];
vector<int>node;
int cnt=0;
void dfs(int cur){
    vis[cur]=true;
    if(!spec[cur]){
        node.push_back(a[cur]);
    }
    else{
        cnt++;
    }
    for(auto x :adj[cur]){
        if(vis[x])continue;
        dfs(x);
    }
}
signed main(){
    cin>>n>>m;
    for(int q=0;q<n;q++){
        for(int w=0;w<m;w++){
            int id=(q-1)*m+w;
            cin>>a[id];
        }
    }
    int qu;
    cin>>qu;
    int ans=0;
    while(qu--){
        int x,y;
        cin>>x>>y;
        int id=(x-1)*m+y;
        ans+=a[id];
        spec[id]=true;
        for(int q=0;q<4;q++){
            int nx=x+dx[q];
            int ny=y+dy[q];
            if(ins(nx,ny)){
                int baru=(nx-1)*m+ny;
                adj[id].push_back(baru);
                adj[baru].push_back(id);
            }
        }
    }
    for(int q=0;q<n*m;q++){
        if(spec[q] && vis[q]==false){
            cnt=0; node.clear();
            dfs(q);
            if(node.size()<3*cnt){
                cout<<"No"<<endl;
                return 0;
            }
            
            sort(node.rbegin(),node.rend());
            for(int q=0;q<3*cnt;q++){
                ans+=node[q];
            }
        }
    }
    cout<<ans<<endl;
}
| # | 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... |