Submission #1221632

#TimeUsernameProblemLanguageResultExecution timeMemory
1221632mayacT-Covering (eJOI19_covering)C++20
0 / 100
46 ms328 KiB
#include <iostream> #include <vector> #include <queue> using namespace std; using ll=long long; int main(){ int n,m,ans=0,k,a,b,cur; cin>>n>>m; vector<vector<int>> v(n+2,vector<int>(m+2,-1)),d(n+2,vector<int>(m+2,-1)); for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>v[i+1][j+1]; d[i+1][j+1]=v[i+1][j+1]; } } cin>>k; bool flag=0,tmp; vector<pair<int,int>> p(k); for(int i=0;i<k;i++){ cin>>a>>b; p[k]={a+1,b+1}; } for(int t=0;t<(1<<(2*k));t++){ tmp=1; cur=0; for(int i=0;i<k;i++){ a=p[i].first;b=p[i].second; if((t&(1<<(2*k)))&&(t&(1<<(2*k+1)))){ if(d[a][b]==-1||d[a-1][b]==-1||d[a][b+1]==-1||d[a][b-1]==-1)tmp=0; cur+=d[a][b]+d[a-1][b]+d[a][b+1]+d[a][b-1]; d[a][b]=-1;d[a-1][b]=-1;d[a][b+1]=-1;d[a][b-1]=-1; } if((t&(1<<(2*k)))&&!(t&(1<<(2*k+1)))){ if(d[a][b]==-1||d[a+1][b]==-1||d[a][b+1]==-1||d[a][b-1]==-1)tmp=0; cur+=d[a][b]+d[a+1][b]+d[a][b+1]+d[a][b-1]; d[a][b]=-1;d[a+1][b]=-1;d[a][b+1]=-1;d[a][b-1]=-1; } if(!(t&(1<<(2*k)))&&(t&(1<<(2*k+1)))){ if(d[a][b]==-1||d[a-1][b]==-1||d[a+1][b]==-1||d[a][b-1]==-1)tmp=0; cur+=d[a][b]+d[a-1][b]+d[a+1][1]+d[a][b-1]; d[a][b]=-1;d[a-1][b]=-1;d[a+1][b]=-1;d[a][b-1]=-1; } if(!(t&(1<<(2*k)))&&(t&(1<<(2*k+1)))){ if(d[a][b]==-1||d[a-1][b]==-1||d[a+1][b]==-1||d[a][b+1]==-1)tmp=0; cur+=d[a][b]+d[a-1][b]+d[a+1][1]+d[a][b-1]; d[a][b]=-1;d[a-1][b]=-1;d[a+1][b]=-1;d[a][b+1]=-1; } } for(int i=0;i<k;i++){ a=p[i].first;b=p[i].second; if((t&(1<<(2*k)))&&(t&(1<<(2*k+1)))){ d[a][b]=v[a][b];d[a-1][b]=v[a-1][b];d[a][b+1]=v[a][b+1];d[a][b-1]=v[a][b-1]; } if((t&(1<<(2*k)))&&!(t&(1<<(2*k+1)))){ d[a][b]=v[a][b];d[a+1][b]=v[a+1][b];d[a][b+1]=v[a][b+1];d[a][b-1]=v[a][b-1]; } if(!(t&(1<<(2*k)))&&(t&(1<<(2*k+1)))){ d[a][b]=v[a][b];d[a-1][b]=v[a-1][b];d[a+1][b]=v[a+1][b];d[a][b-1]=v[a][b-1]; } if(!(t&(1<<(2*k)))&&(t&(1<<(2*k+1)))){ d[a][b]=v[a][b];d[a-1][b]=v[a-1][b];d[a-1][b]=v[a-1][b];d[a][b-1]=v[a][b-1]; } } if(tmp){ flag=1; ans=max(ans,cur); } } if(flag)cout<<ans<<"\n"; else cout<<"NO\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...