Submission #6021020
Source Code Expand
void solve(); int main() { solve(); return 0; } ////////////////////////////////////////////////// ////////////////////////////////////////////////// #include <iostream> #include <vector> #include <limits.h> #include <algorithm> using namespace std; int W,H,N; typedef pair<int, int> pii; vector<pii> POS; vector<int> X, Y; vector<vector<int>> MAP; vector<vector<int>> XSUM, YSUM; //XSUM[x][y] = Σ1<=i<=x MAP[i][y] int DP[62][62][62][62]; void solve() { cin >>W >> H >> N; POS.resize(N); for (int n = 0; n < N; n++) { int x, y; cin >> x >> y; POS[n] = pii(x, y); } POS.push_back(pii(W + 1, H + 1)); sort(POS.begin(), POS.end(), [](pii a, pii b) {return a.first < b.first; }); X.push_back(0); if(POS[0].first != 1)X.push_back(1); for (int n = 1; n <= N; n++) { if (POS[n].first != POS[n - 1].first) { X.push_back(POS[n - 1].first); if (POS[n].first - POS[n - 1].first > 1)X.push_back(POS[n - 1].first + 1); } } sort(POS.begin(), POS.end(), [](pii a, pii b) {return a.second < b.second; }); Y.push_back(0); if (POS[0].second != 1)Y.push_back(1); for (int n = 1; n <= N; n++) { if (POS[n].second != POS[n - 1].second) { Y.push_back(POS[n - 1].second); if (POS[n].second - POS[n - 1].second > 1)Y.push_back(POS[n - 1].second + 1); } } X.push_back(W + 1); Y.push_back(H + 1); MAP.resize(X.size()); for (int x = 0; x < X.size(); x++)MAP[x].resize(Y.size(),0); for (int xn = 1; xn < X.size() - 1; xn++) { for (int yn = 1; yn < Y.size() - 1; yn++) { MAP[xn][yn] = (X[xn + 1] - X[xn]) * (Y[yn + 1] - Y[yn]); } } XSUM.resize(X.size()-1); YSUM.resize(X.size() - 1); for (int x = 0; x < X.size()-1; x++) { XSUM[x].resize(Y.size() - 1, 0); YSUM[x].resize(Y.size() - 1, 0); } for (int x = 1; x < X.size()-1; x++) { for (int y = 1; y < Y.size()-1; y++) { XSUM[x][y] = XSUM[x - 1][y] + MAP[x][y]; YSUM[x][y] = YSUM[x][y - 1] + MAP[x][y]; } } sort(POS.begin(), POS.end(), [](pii a, pii b) {return a.first < b.first; }); for (int n = 1; n <= N; n++) { int oldx = POS[n].first; POS[n].first = POS[n - 1].first; while (X[POS[n].first] != oldx)POS[n].first++; } sort(POS.begin(), POS.end(), [](pii a, pii b) {return a.second < b.second; }); for (int n = 1; n <= N; n++) { int oldy = POS[n].second; POS[n].second = POS[n - 1].second; while (Y[POS[n].second] != oldy)POS[n].second++; } for (int x1 = 0; x1 < X.size() - 1; x1++) { for (int x2 = 0; x2 < X.size() - 1; x2++) { for (int y1 = 0; y1 < Y.size() - 1; y1++) { for (int y2 = 0; y2 < Y.size() - 1; y2++) { DP[x1][x2][y1][y2] = 0; } } } } for (int w = 0; w < X.size()-1; w++) { for (int x1 = 1; x1 + w < X.size() - 1; x1++) { for (int h = 0; h < Y.size()-1; h++) { for (int y1 = 1; y1 + h < Y.size()-1; y1++) { int x2 = x1 + w, y2 = y1 + h; for (int n = 0; n < N; n++) { if (POS[n].first < x1 || POS[n].first > x2 || POS[n].second < y1 || POS[n].second > y2)continue; int xsum = XSUM[x2][POS[n].second] - XSUM[x1 - 1][POS[n].second]; int ysum = YSUM[POS[n].first][y2] - YSUM[POS[n].first][y1 - 1]; int sum = xsum + ysum - MAP[POS[n].first][POS[n].second]; DP[x1][x2][y1][y2] = max(DP[x1][x2][y1][y2], sum + DP[x1][POS[n].first - 1][y1][POS[n].second - 1] + DP[POS[n].first + 1][x2][y1][POS[n].second - 1] + DP[x1][POS[n].first - 1][POS[n].second + 1][y2] + DP[POS[n].first + 1][x2][POS[n].second + 1][y2]); } } } } } cout << DP[1][X.size() - 2][1][Y.size() - 2] << endl; return; }
Submission Info
Submission Time | |
---|---|
Task | D - 金塊ゲーム |
User | ano3 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 3657 Byte |
Status | RE |
Exec Time | 148 ms |
Memory | 49152 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 80 | 0 / 19 | 0 / 1 | ||||||||||||||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt |
Subtask2 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt |
Subtask3 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt, subtask3_08.txt, subtask3_09.txt, subtask3_10.txt, subtask3_11.txt, subtask3_12.txt, subtask3_13.txt, subtask3_14.txt, subtask3_15.txt, subtask3_16.txt, subtask3_17.txt, subtask3_18.txt, subtask3_19.txt, subtask3_20.txt, subtask3_21.txt, subtask3_22.txt, subtask3_23.txt, subtask3_24.txt, subtask3_25.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 2 ms | 4480 KB |
sample_02.txt | AC | 2 ms | 2304 KB |
sample_03.txt | AC | 3 ms | 10752 KB |
subtask1_01.txt | AC | 2 ms | 4480 KB |
subtask1_02.txt | AC | 2 ms | 2432 KB |
subtask1_03.txt | AC | 3 ms | 6528 KB |
subtask1_04.txt | WA | 4 ms | 12928 KB |
subtask1_05.txt | RE | 96 ms | 256 KB |
subtask1_06.txt | AC | 2 ms | 2304 KB |
subtask1_07.txt | WA | 3 ms | 8704 KB |
subtask1_08.txt | AC | 1 ms | 256 KB |
subtask1_09.txt | RE | 97 ms | 256 KB |
subtask1_10.txt | RE | 100 ms | 256 KB |
subtask1_11.txt | RE | 96 ms | 256 KB |
subtask1_12.txt | WA | 2 ms | 4480 KB |
subtask1_13.txt | RE | 97 ms | 256 KB |
subtask1_14.txt | WA | 3 ms | 10752 KB |
subtask1_15.txt | WA | 4 ms | 12928 KB |
subtask1_16.txt | WA | 5 ms | 14976 KB |
subtask1_17.txt | RE | 97 ms | 256 KB |
subtask1_18.txt | AC | 3 ms | 8704 KB |
subtask1_19.txt | AC | 2 ms | 6528 KB |
subtask1_20.txt | AC | 3 ms | 6528 KB |
subtask1_21.txt | RE | 98 ms | 256 KB |
subtask1_22.txt | AC | 4 ms | 12928 KB |
subtask1_23.txt | AC | 3 ms | 6656 KB |
subtask1_24.txt | RE | 97 ms | 256 KB |
subtask1_25.txt | WA | 5 ms | 14976 KB |
subtask2_01.txt | AC | 9 ms | 21376 KB |
subtask2_02.txt | WA | 7 ms | 17152 KB |
subtask2_03.txt | WA | 22 ms | 27776 KB |
subtask2_04.txt | WA | 21 ms | 34048 KB |
subtask2_05.txt | AC | 38 ms | 36224 KB |
subtask2_06.txt | AC | 45 ms | 36224 KB |
subtask2_07.txt | AC | 33 ms | 32000 KB |
subtask2_08.txt | AC | 33 ms | 32000 KB |
subtask2_09.txt | WA | 60 ms | 38528 KB |
subtask2_10.txt | WA | 134 ms | 46976 KB |
subtask2_11.txt | AC | 55 ms | 38400 KB |
subtask2_12.txt | WA | 130 ms | 46976 KB |
subtask2_13.txt | WA | 71 ms | 42752 KB |
subtask2_14.txt | AC | 88 ms | 44928 KB |
subtask2_15.txt | WA | 6 ms | 19200 KB |
subtask2_16.txt | AC | 37 ms | 34048 KB |
subtask2_17.txt | WA | 48 ms | 34176 KB |
subtask2_18.txt | WA | 102 ms | 49024 KB |
subtask2_19.txt | AC | 86 ms | 46848 KB |
subtask2_20.txt | AC | 93 ms | 42752 KB |
subtask2_21.txt | AC | 75 ms | 38528 KB |
subtask2_22.txt | AC | 112 ms | 44928 KB |
subtask2_23.txt | RE | 96 ms | 256 KB |
subtask2_24.txt | WA | 148 ms | 49152 KB |
subtask2_25.txt | AC | 109 ms | 44928 KB |
subtask3_01.txt | RE | 99 ms | 256 KB |
subtask3_02.txt | RE | 97 ms | 256 KB |
subtask3_03.txt | RE | 97 ms | 256 KB |
subtask3_04.txt | RE | 97 ms | 256 KB |
subtask3_05.txt | RE | 97 ms | 256 KB |
subtask3_06.txt | RE | 99 ms | 256 KB |
subtask3_07.txt | RE | 97 ms | 256 KB |
subtask3_08.txt | RE | 98 ms | 256 KB |
subtask3_09.txt | RE | 97 ms | 256 KB |
subtask3_10.txt | RE | 99 ms | 256 KB |
subtask3_11.txt | RE | 100 ms | 256 KB |
subtask3_12.txt | RE | 97 ms | 256 KB |
subtask3_13.txt | RE | 97 ms | 256 KB |
subtask3_14.txt | RE | 98 ms | 256 KB |
subtask3_15.txt | RE | 98 ms | 256 KB |
subtask3_16.txt | RE | 97 ms | 256 KB |
subtask3_17.txt | RE | 98 ms | 256 KB |
subtask3_18.txt | RE | 97 ms | 256 KB |
subtask3_19.txt | RE | 97 ms | 256 KB |
subtask3_20.txt | RE | 97 ms | 256 KB |
subtask3_21.txt | RE | 97 ms | 256 KB |
subtask3_22.txt | RE | 99 ms | 256 KB |
subtask3_23.txt | RE | 101 ms | 256 KB |
subtask3_24.txt | RE | 97 ms | 256 KB |
subtask3_25.txt | RE | 97 ms | 256 KB |