Submission #7146532
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; int gold_prex = xpos[gold[i].first - 1]; int gold_prox = xpos[gold[i].first + 1]; int gold_prey = ypos[gold[i].second - 1]; int gold_proy = ypos[gold[i].second + 1]; if (ux <= gold_prex && uy <= gold_prey) d1 = dp[ux][uy][gold_prex][gold_prey]; if (gold_prox <= sx && uy <= gold_prey) d2 = dp[gold_prox][uy][sx][gold_prey]; if (ux <= gold_prex && gold_proy <= sy) d3 = dp[ux][gold_proy][gold_prex][sy]; if (gold_prox <= sx && gold_proy <= sy) d4 = dp[gold_prox][gold_proy][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 | 100 |
Code Size | 3361 Byte |
Status | AC |
Exec Time | 2402 ms |
Memory | 194540 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 80 / 80 | 19 / 19 | 1 / 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 | 4 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 | 896 KB |
subtask1_15.txt | AC | 5 ms | 1660 KB |
subtask1_16.txt | AC | 4 ms | 1312 KB |
subtask1_17.txt | AC | 4 ms | 1184 KB |
subtask1_18.txt | AC | 2 ms | 640 KB |
subtask1_19.txt | AC | 2 ms | 384 KB |
subtask1_20.txt | AC | 2 ms | 384 KB |
subtask1_21.txt | AC | 4 ms | 1184 KB |
subtask1_22.txt | AC | 4 ms | 1280 KB |
subtask1_23.txt | AC | 2 ms | 512 KB |
subtask1_24.txt | AC | 6 ms | 1788 KB |
subtask1_25.txt | AC | 5 ms | 1660 KB |
subtask2_01.txt | AC | 14 ms | 3260 KB |
subtask2_02.txt | AC | 16 ms | 3320 KB |
subtask2_03.txt | AC | 94 ms | 19312 KB |
subtask2_04.txt | AC | 137 ms | 24176 KB |
subtask2_05.txt | AC | 226 ms | 37616 KB |
subtask2_06.txt | AC | 206 ms | 28016 KB |
subtask2_07.txt | AC | 137 ms | 21616 KB |
subtask2_08.txt | AC | 92 ms | 13556 KB |
subtask2_09.txt | AC | 520 ms | 70892 KB |
subtask2_10.txt | AC | 700 ms | 84844 KB |
subtask2_11.txt | AC | 264 ms | 38256 KB |
subtask2_12.txt | AC | 838 ms | 91760 KB |
subtask2_13.txt | AC | 404 ms | 50800 KB |
subtask2_14.txt | AC | 442 ms | 68716 KB |
subtask2_15.txt | AC | 12 ms | 3260 KB |
subtask2_16.txt | AC | 154 ms | 22512 KB |
subtask2_17.txt | AC | 247 ms | 35948 KB |
subtask2_18.txt | AC | 637 ms | 81388 KB |
subtask2_19.txt | AC | 421 ms | 49264 KB |
subtask2_20.txt | AC | 478 ms | 70508 KB |
subtask2_21.txt | AC | 575 ms | 73708 KB |
subtask2_22.txt | AC | 648 ms | 80876 KB |
subtask2_23.txt | AC | 719 ms | 83948 KB |
subtask2_24.txt | AC | 724 ms | 84592 KB |
subtask2_25.txt | AC | 899 ms | 95472 KB |
subtask3_01.txt | AC | 3 ms | 1056 KB |
subtask3_02.txt | AC | 73 ms | 19696 KB |
subtask3_03.txt | AC | 16 ms | 3576 KB |
subtask3_04.txt | AC | 154 ms | 24944 KB |
subtask3_05.txt | AC | 370 ms | 49776 KB |
subtask3_06.txt | AC | 240 ms | 45168 KB |
subtask3_07.txt | AC | 134 ms | 24560 KB |
subtask3_08.txt | AC | 308 ms | 45936 KB |
subtask3_09.txt | AC | 690 ms | 98928 KB |
subtask3_10.txt | AC | 674 ms | 85488 KB |
subtask3_11.txt | AC | 1642 ms | 193516 KB |
subtask3_12.txt | AC | 2402 ms | 190444 KB |
subtask3_13.txt | AC | 1666 ms | 194540 KB |
subtask3_14.txt | AC | 756 ms | 94828 KB |
subtask3_15.txt | AC | 1180 ms | 153836 KB |
subtask3_16.txt | AC | 697 ms | 86252 KB |
subtask3_17.txt | AC | 1689 ms | 193516 KB |
subtask3_18.txt | AC | 338 ms | 50288 KB |
subtask3_19.txt | AC | 1609 ms | 193388 KB |
subtask3_20.txt | AC | 296 ms | 45296 KB |
subtask3_21.txt | AC | 1980 ms | 194540 KB |
subtask3_22.txt | AC | 1737 ms | 193516 KB |
subtask3_23.txt | AC | 1669 ms | 194156 KB |
subtask3_24.txt | AC | 1671 ms | 192876 KB |
subtask3_25.txt | AC | 1564 ms | 193900 KB |