Submission #7146423
Source Code Expand
#include<bits/stdc++.h> using namespace std; int main(){ int w, h; cin >> w >> h; int n; cin >> n; vector<pair<int, int>> gold(n); vector<int> dx; vector<int> dy; map<int, bool> used_x; map<int, bool> used_y; dx.push_back(0); used_x[0] = true; dx.push_back(w - 1); used_x[w - 1] = true; dy.push_back(0); used_y[0] = true; dy.push_back(h - 1); used_y[h - 1] = true; for (int i = 0; i < n; i++){ int x, y; cin >> x >> y; x--; y--; gold[i] = {x, y}; if (x != 0 && !used_x[x - 1]) { dx.push_back(x - 1); used_x[x - 1] = true; } if (x != w - 1 && !used_x[x + 1]) { dx.push_back(x + 1); used_x[x + 1] = true; } if (y != 0 && !used_y[y - 1]) { dy.push_back(y - 1); used_y[y - 1] = true; } if (y != h - 1 && !used_y[y + 1]) { dy.push_back(y + 1); used_y[y + 1] = true; } } sort(dx.begin(), dx.end()); sort(dy.begin(), dy.end()); map<int, int> xpos; map<int, int> ypos; int p = dx.size(); int q = dy.size(); for (int i = 0; i < p; i++) xpos[dx[i]] = i; xpos[- 1] = - 1; xpos[w] = p; for (int i = 0; i < q; i++) ypos[dy[i]] = i; ypos[- 1] = - 1; ypos[h] = q; vector<vector<vector<vector<long long>>>> dp(p, vector<vector<vector<long long>>>(q, vector<vector<long long>>(p, vector<long long>(q, 0)))); vector<tuple<long long, int, int>> pq; for (int i = 0; i < p; i++){ for (int j = 0; j < q; j++){ for (int s = i; s < p; s++){ for (int t = j; t < q; t++){ long long fac = (long long)(dx[s] - dx[i] + 1) * (dy[t] - dy[j] + 1); int a = i * 100 + j; int b = s * 100 + t; pq.push_back(tie(fac, a, b)); } } } } sort(pq.begin(), pq.end()); for (int i = 0; i < pq.size(); i++) { long long fac; int a, b; tie(fac, a, b) = pq[i]; int ux, uy, sx, sy; ux = a / 100; uy = a % 100; sx = b / 100; sy = b % 100; bool flag = true; for (int i = 0; i < n; i++){ if (gold[i].first < dx[ux] || gold[i].first > dx[sx] || gold[i].second < dy[uy] || gold[i].second > dy[sy]) continue; long long d1, d2, d3, d4; d1 = 0; d2 = 0; d3 = 0; d4 = 0; if (ux <= xpos[gold[i].first - 1] && uy <= ypos[gold[i].second - 1]) d1 = dp[ux][uy][xpos[gold[i].first - 1]][ypos[gold[i].second - 1]]; if (xpos[gold[i].first + 1] <= sx && uy <= ypos[gold[i].second - 1]) d2 = dp[xpos[gold[i].first + 1]][uy][sx][ypos[gold[i].second - 1]]; if (ux <= xpos[gold[i].first - 1] && ypos[gold[i].second + 1] <= sy) d3 = dp[ux][ypos[gold[i].second + 1]][xpos[gold[i].first - 1]][sy]; if (xpos[gold[i].first + 1] <= sx && ypos[gold[i].second + 1] <= sy) d4 = dp[xpos[gold[i].first + 1]][ypos[gold[i].second + 1]][sx][sy]; dp[ux][uy][sx][sy] = max(dp[ux][uy][sx][sy], dx[sx] - dx[ux] + dy[sy] - dy[uy] + 1 + d1 + d2 + d3 + d4); } } cout << dp[0][0][p - 1][q - 1] << endl; }
Submission Info
Submission Time | |
---|---|
Task | D - 金塊ゲーム |
User | lemon_ |
Language | C++14 (GCC 5.4.1) |
Score | 99 |
Code Size | 3375 Byte |
Status | TLE |
Exec Time | 4151 ms |
Memory | 194668 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 80 / 80 | 19 / 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 | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 2 ms | 512 KB |
subtask1_01.txt | AC | 1 ms | 256 KB |
subtask1_02.txt | AC | 1 ms | 256 KB |
subtask1_03.txt | AC | 2 ms | 384 KB |
subtask1_04.txt | AC | 5 ms | 1152 KB |
subtask1_05.txt | AC | 1 ms | 256 KB |
subtask1_06.txt | AC | 1 ms | 256 KB |
subtask1_07.txt | AC | 2 ms | 512 KB |
subtask1_08.txt | AC | 1 ms | 256 KB |
subtask1_09.txt | AC | 2 ms | 640 KB |
subtask1_10.txt | AC | 1 ms | 256 KB |
subtask1_11.txt | AC | 2 ms | 512 KB |
subtask1_12.txt | AC | 2 ms | 384 KB |
subtask1_13.txt | AC | 2 ms | 512 KB |
subtask1_14.txt | AC | 3 ms | 768 KB |
subtask1_15.txt | AC | 7 ms | 1660 KB |
subtask1_16.txt | AC | 6 ms | 1312 KB |
subtask1_17.txt | AC | 5 ms | 1184 KB |
subtask1_18.txt | AC | 3 ms | 640 KB |
subtask1_19.txt | AC | 2 ms | 384 KB |
subtask1_20.txt | AC | 2 ms | 384 KB |
subtask1_21.txt | AC | 5 ms | 1184 KB |
subtask1_22.txt | AC | 6 ms | 1280 KB |
subtask1_23.txt | AC | 2 ms | 512 KB |
subtask1_24.txt | AC | 7 ms | 1788 KB |
subtask1_25.txt | AC | 6 ms | 1660 KB |
subtask2_01.txt | AC | 19 ms | 3260 KB |
subtask2_02.txt | AC | 23 ms | 3320 KB |
subtask2_03.txt | AC | 147 ms | 18544 KB |
subtask2_04.txt | AC | 223 ms | 24176 KB |
subtask2_05.txt | AC | 371 ms | 37616 KB |
subtask2_06.txt | AC | 347 ms | 28016 KB |
subtask2_07.txt | AC | 229 ms | 22256 KB |
subtask2_08.txt | AC | 150 ms | 13556 KB |
subtask2_09.txt | AC | 893 ms | 72428 KB |
subtask2_10.txt | AC | 1232 ms | 84972 KB |
subtask2_11.txt | AC | 447 ms | 37872 KB |
subtask2_12.txt | AC | 1471 ms | 91760 KB |
subtask2_13.txt | AC | 689 ms | 50672 KB |
subtask2_14.txt | AC | 744 ms | 69100 KB |
subtask2_15.txt | AC | 17 ms | 3260 KB |
subtask2_16.txt | AC | 253 ms | 22384 KB |
subtask2_17.txt | AC | 426 ms | 36844 KB |
subtask2_18.txt | AC | 1112 ms | 80620 KB |
subtask2_19.txt | AC | 695 ms | 49520 KB |
subtask2_20.txt | AC | 830 ms | 69996 KB |
subtask2_21.txt | AC | 996 ms | 75116 KB |
subtask2_22.txt | AC | 1117 ms | 81132 KB |
subtask2_23.txt | AC | 1253 ms | 82924 KB |
subtask2_24.txt | AC | 1255 ms | 86000 KB |
subtask2_25.txt | AC | 1577 ms | 94832 KB |
subtask3_01.txt | AC | 4 ms | 1056 KB |
subtask3_02.txt | AC | 115 ms | 19440 KB |
subtask3_03.txt | AC | 24 ms | 3576 KB |
subtask3_04.txt | AC | 243 ms | 26224 KB |
subtask3_05.txt | AC | 610 ms | 49392 KB |
subtask3_06.txt | AC | 402 ms | 46320 KB |
subtask3_07.txt | AC | 216 ms | 24688 KB |
subtask3_08.txt | AC | 522 ms | 46192 KB |
subtask3_09.txt | AC | 1245 ms | 98544 KB |
subtask3_10.txt | AC | 1192 ms | 83952 KB |
subtask3_11.txt | AC | 2801 ms | 193132 KB |
subtask3_12.txt | TLE | 4151 ms | 189932 KB |
subtask3_13.txt | AC | 2984 ms | 193900 KB |
subtask3_14.txt | AC | 1315 ms | 95084 KB |
subtask3_15.txt | AC | 2053 ms | 153708 KB |
subtask3_16.txt | AC | 1115 ms | 85100 KB |
subtask3_17.txt | AC | 2972 ms | 193772 KB |
subtask3_18.txt | AC | 559 ms | 50288 KB |
subtask3_19.txt | AC | 2845 ms | 192876 KB |
subtask3_20.txt | AC | 505 ms | 46192 KB |
subtask3_21.txt | AC | 3398 ms | 193644 KB |
subtask3_22.txt | AC | 3021 ms | 193132 KB |
subtask3_23.txt | AC | 2960 ms | 194668 KB |
subtask3_24.txt | AC | 2942 ms | 194284 KB |
subtask3_25.txt | AC | 2760 ms | 193260 KB |