제출 #1235925

#제출 시각아이디문제언어결과실행 시간메모리
1235925lanaskaricaUFO (IZhO14_ufo)C++20
10 / 100
356 ms235472 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair <int, int> #define fi first #define se second vector <ll> vtr; vector <int> vtr2; vector <vector <ll> > mat; vector <vector <int> > mat2; vector <vector <vector <int> > > s; void makni(int x, int y) { mat[x - 1][y - 1]--; if (mat[x - 1][y - 1] > 0) return; s[s[x][y][3]][y][2] = s[x][y][2]; s[s[x][y][2]][y][3] = s[x][y][3]; s[x][s[x][y][1]][0] = s[x][y][0]; s[x][s[x][y][0]][1] = s[x][y][1]; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); ll val; int n, m, r, k, p, a, b; char c; cin >> n >> m >> r >> k >> p; for (int i = 0; i <= n + 1; i++) { mat2.clear(); for (int j = 0; j <= m + 1; j++) { vtr2.clear(); vtr2.push_back(j - 1); vtr2.push_back(j + 1); vtr2.push_back(i - 1); vtr2.push_back(i + 1); mat2.push_back(vtr2); } s.push_back(mat2); } mat.clear(); for (int i = 1; i <= n; i++) { vtr.clear(); for (int j = 1; j <= m; j++) { cin >> val; vtr.push_back(val); } mat.push_back(vtr); } for (int i = 0; i < k; i++) { cin >> c >> a >> b; int x, y; if (c == 'N') {x = 0; y = a;} if (c == 'S') {x = n + 1; y = a;} if (c == 'W') {x = a; y = 0;} if (c == 'E') {x = a; y = m + 1;} for (int j = 0; j < r; j++) { if (c == 'N') x = s[x][y][3]; if (c == 'S') x = s[x][y][2]; if (c == 'W') y = s[x][y][1]; if (c == 'E') y = s[x][y][0]; makni(x, y); } } ll rj = 0; for (int i = 0; i < n - p + 1; i++) { for (int j = 0; j < m - p + 1; j++) { ll zb = 0; for (int x = i; x < i + p; x++) { for (int y = j; y < j + p; y++) { zb += mat[x][y]; } } rj = max(rj, zb); } } cout << rj << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...