답안 #684006

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
684006 2023-01-20T03:32:10 Z pragmatist UFO (IZhO14_ufo) C++17
10 / 100
2000 ms 10868 KB
/*
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("O3")
#pragma GCC target ("avx2")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma GCC optimize("unroll-loops")
*/

#include<bits/stdc++.h>
 
#define ld long double
#define sz(v) (int)v.size()
#define ll long long
#define pb push_back
#define x first
#define y second
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define nl "\n"

using namespace std;
using pii = pair<int, int>;

const int N = (int)1e2 + 7; // make sure this is right
const int M = (int)1e3 + 7;
const int inf = (int)2e9 + 7;
const ll INF = (ll)3e18 + 7; 
const double PI = acos(-1);
ll MOD = (ll)1e9 + 7; // make sure this is right

bool bit(int x, int i) {
	return x >> i & 1;
}

int sum(int x, int y) {
	x += y;
	if(x >= MOD) x -= MOD;
	return x;
}

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

int n, m, r, q, p;

void solve() {
	cin >> n >> m >> r >> q >> 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(q--) {
		char tp;
		cin >> tp;
		int x, y;
		cin >> x >> y;
		if(tp == 'W') {
			for(int i = 1, cnt = r; i <= m; ++i) {
				if(a[x][i] >= y) {
					a[x][i]--;
					cnt--;
				}
			}
		}
		if(tp == 'E') {
			for(int i = m, cnt = r; i >= 1; --i) {
				if(a[x][i] >= y) {
					a[x][i]--;
					cnt--;
				}
			}
		}
		if(tp == 'N') {
			for(int i = 1, cnt = r; i <= n; ++i) {
				if(a[i][x] >= y) {
					a[i][x]--;
					cnt--;
				}
			}
		}
		if(tp == 'S') {
			for(int i = n, cnt = 1; i >= 1; --i) {
				if(a[i][x] >= y) {
					a[i][x]--;
					cnt--;
				}
			}
		}
	}
	int ans = 0;
	for(int i = 1; i <= n - p + 1; ++i) {
		for(int j = 1; j <= m - p + 1; ++j) {
			int cur = 0;
			for(int ii = i; ii <= i + p - 1; ++ii) {
				for(int jj = j; jj <= j + p - 1; ++jj) {
					cur += a[ii][jj];
				}
			}
			ans = max(ans, cur);
		}
	}
	cout << ans;
}

signed main() {	
	ios_base::sync_with_stdio(0);
	cin.tie(0);
//	freopen("g.in", "r", stdin);
//	freopen("g.out", "w", stdout);
	int test = 1;
	//cin >> test;
	for(int i = 1; i <= test; ++i) {
	 	//cout << "Case #" << i << ": ";
		solve();
	}
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 1 ms 340 KB Output isn't correct
4 Incorrect 7 ms 460 KB Output isn't correct
5 Incorrect 283 ms 1140 KB Output isn't correct
6 Incorrect 178 ms 5508 KB Output isn't correct
7 Execution timed out 2050 ms 10868 KB Time limit exceeded
8 Execution timed out 2045 ms 7400 KB Time limit exceeded
9 Execution timed out 2052 ms 7088 KB Time limit exceeded
10 Execution timed out 2091 ms 7020 KB Time limit exceeded
11 Execution timed out 2086 ms 6816 KB Time limit exceeded
12 Execution timed out 2094 ms 7116 KB Time limit exceeded
13 Execution timed out 2081 ms 7272 KB Time limit exceeded
14 Execution timed out 2074 ms 6820 KB Time limit exceeded
15 Execution timed out 2072 ms 8052 KB Time limit exceeded
16 Execution timed out 2080 ms 6988 KB Time limit exceeded
17 Execution timed out 2075 ms 10612 KB Time limit exceeded
18 Execution timed out 2087 ms 6348 KB Time limit exceeded
19 Execution timed out 2085 ms 7288 KB Time limit exceeded
20 Execution timed out 2069 ms 10288 KB Time limit exceeded