Submission #7146272


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 = (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 3410 Byte
Status WA
Exec Time 4211 ms
Memory 194668 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 80 / 80 19 / 19 0 / 1
Status
AC × 3
AC × 25
AC × 50
AC × 61
WA × 4
TLE × 10
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 896 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 6 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 179 ms 19696 KB
subtask2_04.txt AC 268 ms 22512 KB
subtask2_05.txt AC 445 ms 38512 KB
subtask2_06.txt AC 413 ms 26608 KB
subtask2_07.txt AC 270 ms 21232 KB
subtask2_08.txt AC 179 ms 13556 KB
subtask2_09.txt AC 1059 ms 71148 KB
subtask2_10.txt AC 1449 ms 85740 KB
subtask2_11.txt AC 527 ms 37744 KB
subtask2_12.txt AC 1724 ms 90096 KB
subtask2_13.txt AC 810 ms 50672 KB
subtask2_14.txt AC 877 ms 69100 KB
subtask2_15.txt AC 21 ms 3260 KB
subtask2_16.txt AC 302 ms 22640 KB
subtask2_17.txt AC 480 ms 35308 KB
subtask2_18.txt AC 1298 ms 81388 KB
subtask2_19.txt AC 809 ms 48240 KB
subtask2_20.txt AC 966 ms 70508 KB
subtask2_21.txt AC 1165 ms 75116 KB
subtask2_22.txt AC 1343 ms 81644 KB
subtask2_23.txt AC 1499 ms 83692 KB
subtask2_24.txt AC 1563 ms 85360 KB
subtask2_25.txt AC 1856 ms 95216 KB
subtask3_01.txt WA 4 ms 1056 KB
subtask3_02.txt WA 151 ms 20080 KB
subtask3_03.txt AC 29 ms 3576 KB
subtask3_04.txt AC 304 ms 26480 KB
subtask3_05.txt AC 742 ms 49264 KB
subtask3_06.txt WA 629 ms 45424 KB
subtask3_07.txt AC 271 ms 24176 KB
subtask3_08.txt AC 616 ms 45424 KB
subtask3_09.txt WA 2087 ms 98800 KB
subtask3_10.txt AC 1478 ms 84464 KB
subtask3_11.txt TLE 4211 ms 194412 KB
subtask3_12.txt TLE 4210 ms 189164 KB
subtask3_13.txt TLE 4211 ms 193644 KB
subtask3_14.txt AC 1613 ms 94828 KB
subtask3_15.txt AC 2553 ms 152684 KB
subtask3_16.txt AC 1387 ms 85100 KB
subtask3_17.txt TLE 4211 ms 193132 KB
subtask3_18.txt AC 687 ms 49392 KB
subtask3_19.txt TLE 4211 ms 194668 KB
subtask3_20.txt AC 624 ms 44528 KB
subtask3_21.txt TLE 4211 ms 193388 KB
subtask3_22.txt TLE 4210 ms 193516 KB
subtask3_23.txt TLE 4211 ms 194412 KB
subtask3_24.txt TLE 4210 ms 192876 KB
subtask3_25.txt TLE 4211 ms 194156 KB