Submission #345408

#TimeUsernameProblemLanguageResultExecution timeMemory
345408pragmatistUFO (IZhO14_ufo)C++14
5 / 100
2103 ms6088 KiB
// turmak-_-
#include<bits/stdc++.h>

#define all(v) v.begin(),v.end()
#define sz(a) a.size()
#define nl "\n"
#define IOI return 0;
#define pb push_back
#define ppb pop_back()
#define ll long long
#define ull unsigned long long
#define ld long double
#define IOS ios_base :: sync_with_stdio(NULL); cin.tie(0); cout.tie(0);
#define pii pair<int,int>
#define X first
#define Y second


using namespace std;
const int N = (int)1e5 + 7 ;
const ll MOD = (ll)998244353;
const ll INF = (ll)1e18 + 7;
const int inf = (int)1e9 + 7;

pii dx[] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};



void solve() {
    int n,m,r,k,p;
    cin>>n>>m>>r>>k>>p;
int a[n+1][m+1];
    for(int i=1; i<=n; ++i) {
    	for(int j=1; j<=m; ++j) {
    		cin>>a[i][j];
    	}
    }
    while(k--) {
    	char tp;

    	int x,y;
    	cin>>tp>>x>>y;
    	int cnt = 1;
    	if(tp=='N') {
    		for(int i=1; i<=n; ++i) {
    			if(a[i][x]==y) {
    				if(cnt<=r) {
    					a[i][x]--;
    					cnt++;
    				}
    			}
    		}
    	}
    	if(tp=='W') {
    		for(int i=1; i<=m; ++i) {
    			if(a[x][i]==y) {
    				if(cnt<=r) {
    					a[x][i]--;
    					cnt++;
    				}

    			}
    		}
    	}
    	if(tp=='S') {
    		for(int i=n; i>=1; --i) {
    			if(a[i][x]==y) {
					if(cnt<=r) {
    					a[i][x]--;
    					cnt++;
    				}
    			}
    		}
    	}
    	if(tp=='E') {
    		for(int i=m; i>=1; --i) {
    			if(a[x][i]==y) {
    				if(cnt<=r) {
    					a[x][i]--;
    					cnt++;
    				}
    			}
    		}
    	}
    }
    int mx = 0;
    for(int i=1; i<=n-p+1; ++i) {
    	for(int j=1; j<=m-p+1; ++j) {
    		int x = i, y = j, sum=0;
    		for(int ii = x; ii<=x+p-1; ++ii) {
    			for(int jj = y; jj<=y+p-1; ++jj) {
    				sum+=a[ii][jj];
    			}
    		}
    		mx = max(mx, sum);
    	}
    }
    cout<<mx<<nl;
}
int main() {
    IOS
    srand(time(0));
    //freopen("cinema.in", "r", stdin);
    //freopen("cinema.out", "w", stdout);
    int tt=1;
    //cin>>tt;
    while(tt--) {
        solve();
    }
    IOI
}
#Verdict Execution timeMemoryGrader output
Fetching results...