Submission #7146351
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)))); priority_queue<tuple<long long, int, int>, vector<tuple<long long, int, int>>, greater<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(tie(fac, a, b)); } } } } while (pq.size()){ long long fac; int a, b; tie(fac, a, b) = pq.top(); pq.pop(); 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 | 3421 Byte |
Status | TLE |
Exec Time | 4211 ms |
Memory | 194156 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 | 6 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 | 3 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 | 8 ms | 1660 KB |
subtask1_16.txt | AC | 7 ms | 1312 KB |
subtask1_17.txt | AC | 6 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 | 6 ms | 1184 KB |
subtask1_22.txt | AC | 7 ms | 1280 KB |
subtask1_23.txt | AC | 2 ms | 512 KB |
subtask1_24.txt | AC | 9 ms | 1788 KB |
subtask1_25.txt | AC | 8 ms | 1660 KB |
subtask2_01.txt | AC | 23 ms | 3260 KB |
subtask2_02.txt | AC | 28 ms | 3320 KB |
subtask2_03.txt | AC | 177 ms | 18928 KB |
subtask2_04.txt | AC | 270 ms | 23280 KB |
subtask2_05.txt | AC | 443 ms | 37872 KB |
subtask2_06.txt | AC | 415 ms | 27120 KB |
subtask2_07.txt | AC | 272 ms | 21360 KB |
subtask2_08.txt | AC | 178 ms | 13044 KB |
subtask2_09.txt | AC | 1061 ms | 72044 KB |
subtask2_10.txt | AC | 1422 ms | 84844 KB |
subtask2_11.txt | AC | 541 ms | 39408 KB |
subtask2_12.txt | AC | 1776 ms | 90736 KB |
subtask2_13.txt | AC | 811 ms | 49904 KB |
subtask2_14.txt | AC | 909 ms | 69740 KB |
subtask2_15.txt | AC | 21 ms | 3260 KB |
subtask2_16.txt | AC | 300 ms | 22000 KB |
subtask2_17.txt | AC | 491 ms | 35180 KB |
subtask2_18.txt | AC | 1284 ms | 80364 KB |
subtask2_19.txt | AC | 821 ms | 48112 KB |
subtask2_20.txt | AC | 973 ms | 69996 KB |
subtask2_21.txt | AC | 1187 ms | 75628 KB |
subtask2_22.txt | AC | 1309 ms | 81004 KB |
subtask2_23.txt | AC | 1496 ms | 84716 KB |
subtask2_24.txt | AC | 1429 ms | 84336 KB |
subtask2_25.txt | AC | 1864 ms | 93680 KB |
subtask3_01.txt | AC | 4 ms | 1056 KB |
subtask3_02.txt | AC | 141 ms | 18288 KB |
subtask3_03.txt | AC | 29 ms | 3576 KB |
subtask3_04.txt | AC | 295 ms | 24688 KB |
subtask3_05.txt | AC | 742 ms | 49136 KB |
subtask3_06.txt | AC | 503 ms | 45424 KB |
subtask3_07.txt | AC | 277 ms | 25200 KB |
subtask3_08.txt | AC | 624 ms | 46320 KB |
subtask3_09.txt | AC | 1478 ms | 98800 KB |
subtask3_10.txt | AC | 1469 ms | 84464 KB |
subtask3_11.txt | AC | 3540 ms | 192876 KB |
subtask3_12.txt | TLE | 4210 ms | 189164 KB |
subtask3_13.txt | AC | 3711 ms | 192876 KB |
subtask3_14.txt | AC | 1645 ms | 95340 KB |
subtask3_15.txt | AC | 2569 ms | 152044 KB |
subtask3_16.txt | AC | 1360 ms | 84588 KB |
subtask3_17.txt | AC | 3768 ms | 193004 KB |
subtask3_18.txt | AC | 707 ms | 50416 KB |
subtask3_19.txt | AC | 3535 ms | 193516 KB |
subtask3_20.txt | AC | 624 ms | 44656 KB |
subtask3_21.txt | TLE | 4211 ms | 193900 KB |
subtask3_22.txt | AC | 3826 ms | 193516 KB |
subtask3_23.txt | AC | 3701 ms | 193516 KB |
subtask3_24.txt | AC | 3750 ms | 194156 KB |
subtask3_25.txt | AC | 3474 ms | 193260 KB |