Submission #1277112

#TimeUsernameProblemLanguageResultExecution timeMemory
1277112PetrixUFO (IZhO14_ufo)C++20
0 / 100
820 ms149136 KiB
#include <iostream> #include <set> #include <vector> using namespace std; #define int long long vector<vector<int>> v; vector<set<int>> l,c; set<int> aux; signed main() { int n,m,poz,niv,r,k,p,i,j,max1=0; char ch; cin>>n>>m>>r>>k>>p; v.resize(n+1); l.resize(n+1);c.resize(m+1); for(i=1;i<=n;i++){ v[i].resize(m+1); for(j=1;j<=m;j++){ cin>>v[i][j]; if(v[i][j]){ l[i].insert(j); c[j].insert(i); } } } for(i=1;i<=k;i++){ cin>>ch>>poz>>niv; if(ch=='N'){ aux.clear(); for(j=0;j<r && !c[poz].empty();j++){ auto it=c[poz].begin(); c[poz].erase(it); v[*it][poz]--; if(v[*it][poz]>0){ aux.insert(*it); } } c[poz].insert(aux.begin(),aux.end()); }else if(ch=='S'){ aux.clear(); for(j=0;j<r&& !c[poz].empty();j++){ auto it=c[poz].end();it--; c[poz].erase(it); v[*it][poz]--; if(v[*it][poz]>0){ aux.insert(*it); } } c[poz].insert(aux.begin(),aux.end()); }else if(ch=='W'){ aux.clear(); for(j=0;j<r && !l[poz].empty();j++){ auto it=l[poz].begin(); l[poz].erase(it); v[poz][*it]--; if(v[poz][*it]>0){ aux.insert(*it); } } l[poz].insert(aux.begin(),aux.end()); }else{ aux.clear(); for(j=0;j<r&& !l[poz].empty() ;j++){ auto it=l[poz].end();it--; l[poz].erase(it); v[poz][*it]--; if(v[poz][*it]>0){ aux.insert(*it); } } l[poz].insert(aux.begin(),aux.end()); } } for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ v[i][j]+=v[i-1][j]+v[i][j-1]-v[i-1][j-1]; } } for(i=1;i+p-1<=n;i++){ for(j=1;j+p-1<=n;j++){ max1=max(max1,v[i+p-1][j+p-1]-v[i-1][j+p-1]-v[i+p-1][j-1]+v[i-1][j+1]); } } cout<<max1; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...