Submission #62240


Source Code Expand

#include <iostream>

using namespace std;

const int kMinX = -1000, kMaxX = +1000;
const int kMinY = -1000, kMaxY = +1000;

int main()
{
    static int d0[kMaxX-kMinX+1][kMaxY-kMinY+1];
    static int d1[kMaxX-kMinX+1][kMaxY-kMinY+1];
    static int d2[kMaxX-kMinX+1][kMaxY-kMinY+1];

    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        int type, x, y, z;

        cin >> type >> x >> y >> z;
        x -= kMinX, y -= kMinY;

        switch (type) {
        case 1:
            for (int j = 0; j < z; j++) {  // upper
                int x0 = x - z, x1 = x + (z - j), yj = y + j;
                ++d0[x0 + 1][yj], --d0[x1][yj];
            }
            for (int j = 1; j < z; j++) {  // lower
                int x0 = x - (z - j), x1 = x + z, yj = y - j;
                ++d0[x0 + 1][yj], --d0[x1][yj];
            }
            break;
        case 2:
            for (int j = 0; j < z; j++) {  // upper
                int x0 = x - z, x1 = x + (z - j), yj = y + j;
                int x2 = x0 + (z - j), x3 = x1 - (z - j);
                ++d1[x0][yj], d0[x0][yj] -= x0, ++d1[x1][yj], d0[x1][yj] -= x1;
                --d1[x2][yj], d0[x2][yj] += x2, --d1[x3][yj], d0[x3][yj] += x3;
            }
            for (int j = 1; j < z; j++) {  // lower
                int x0 = x - (z - j), x1 = x + z, yj = y - j;
                int x2 = x0 + (z - j), x3 = x1 - (z - j);
                ++d1[x0][yj], d0[x0][yj] -= x0, ++d1[x1][yj], d0[x1][yj] -= x1;
                --d1[x2][yj], d0[x2][yj] += x2, --d1[x3][yj], d0[x3][yj] += x3;
            }
            break;
        case 3:
            for (int j = 0; j < z; j++) {  // upper
                int x0 = x - z, x1 = x + (z - j), yj = y + j;
                int x2 = x0 + (z - j), x3 = x1 - (z - j);
                ++d2[x0][yj], d1[x0][yj] -= 2 * x0, d0[x0][yj] += x0 * x0;
                --d2[x1][yj], d1[x1][yj] += 2 * x1, d0[x1][yj] -= x1 * x1;
                --d2[x2][yj], d1[x2][yj] += 2 * x2, d0[x2][yj] -= x2 * x2;
                d1[x2][yj] -= 2 * (z - j), d0[x2][yj] += 2 * (z - j) * x2;
                ++d2[x3][yj], d1[x3][yj] -= 2 * x3, d0[x3][yj] += x3 * x3;
                d1[x3][yj] -= 2 * (z - j), d0[x3][yj] += 2 * (z - j) * x3;
            }
            for (int j = 1; j < z; j++) {  // lower
                int x0 = x - (z - j), x1 = x + z, yj = y - j;
                int x2 = x0 + (z - j), x3 = x1 - (z - j);
                ++d2[x0][yj], d1[x0][yj] -= 2 * x0, d0[x0][yj] += x0 * x0;
                --d2[x1][yj], d1[x1][yj] += 2 * x1, d0[x1][yj] -= x1 * x1;
                --d2[x2][yj], d1[x2][yj] += 2 * x2, d0[x2][yj] -= x2 * x2;
                d1[x2][yj] -= 2 * (z - j), d0[x2][yj] += 2 * (z - j) * x2;
                ++d2[x3][yj], d1[x3][yj] -= 2 * x3, d0[x3][yj] += x3 * x3;
                d1[x3][yj] -= 2 * (z - j), d0[x3][yj] += 2 * (z - j) * x3;
            }
            break;
        }
    }

    int ans = 0;
    for (int y = 0; y <= kMaxY - kMinY; y++) {
        int now = 0, a0 = 0, a1 = 0, a2 = 0;
        for (int x = 0; x <= kMaxX - kMinX; x++) {
            a0 += d0[x][y], a1 += d1[x][y], a2 += d2[x][y];
            now = a0 + a1 * x + a2 * x * x;
            ans = max(ans, now);
        }
    }

    cout << ans << endl;
    return 0;
}

Submission Info

Submission Time
Task I - その味は甘くて
User yuizumi
Language C++ (G++ 4.6.4)
Score 150
Code Size 3342 Byte
Status AC
Exec Time 863 ms
Memory 47468 KB

Judge Result

Set Name small large1 large3
Score / Max Score 10 / 10 40 / 40 100 / 100
Status
AC × 20
AC × 39
AC × 63
Set Name Test Cases
small small/case_000.txt, small/case_001.txt, small/case_002.txt, small/case_003.txt, small/case_004.txt, small/case_005.txt, small/case_006.txt, small/case_007.txt, small/case_008.txt, small/case_009.txt, small/case_010.txt, small/case_011.txt, small/case_012.txt, small/case_013.txt, small/case_014.txt, small/case_015.txt, small/case_024.txt, small/case_025.txt, small/case_026.txt, small/case_027.txt
large1 large1/case_000.txt, large1/case_001.txt, large1/case_002.txt, large1/case_003.txt, large1/case_004.txt, large1/case_005.txt, large1/case_006.txt, large1/case_007.txt, large1/case_008.txt, large1/case_009.txt, large1/case_010.txt, large1/case_011.txt, large1/case_012.txt, large1/case_013.txt, large1/case_014.txt, large1/case_015.txt, large1/case_024.txt, large1/case_025.txt, large1/case_026.txt, large1/case_027.txt, large1/large1_case_000.txt, large1/large1_case_001.txt, large1/large1_case_002.txt, large1/large1_case_003.txt, large1/large1_case_004.txt, large1/large1_case_005.txt, large1/large1_case_006.txt, large1/large1_case_007.txt, large1/large1_case_008.txt, large1/large1_case_009.txt, large1/large1_case_010.txt, large1/large1_case_011.txt, large1/large1_case_012.txt, large1/large1_case_013.txt, large1/large1_case_014.txt, large1/large1_case_020.txt, large1/large1_case_021.txt, large1/large1_case_022.txt, large1/large1_case_023.txt
large3 large3/case_000.txt, large3/case_001.txt, large3/case_002.txt, large3/case_003.txt, large3/case_004.txt, large3/case_005.txt, large3/case_006.txt, large3/case_007.txt, large3/case_008.txt, large3/case_009.txt, large3/case_010.txt, large3/case_011.txt, large3/case_012.txt, large3/case_013.txt, large3/case_014.txt, large3/case_015.txt, large3/case_024.txt, large3/case_025.txt, large3/case_026.txt, large3/case_027.txt, large3/large1_case_000.txt, large3/large1_case_001.txt, large3/large1_case_002.txt, large3/large1_case_003.txt, large3/large1_case_004.txt, large3/large1_case_005.txt, large3/large1_case_006.txt, large3/large1_case_007.txt, large3/large1_case_008.txt, large3/large1_case_009.txt, large3/large1_case_010.txt, large3/large1_case_011.txt, large3/large1_case_012.txt, large3/large1_case_013.txt, large3/large1_case_014.txt, large3/large1_case_020.txt, large3/large1_case_021.txt, large3/large1_case_022.txt, large3/large1_case_023.txt, large3/large3_case_000.txt, large3/large3_case_001.txt, large3/large3_case_002.txt, large3/large3_case_003.txt, large3/large3_case_004.txt, large3/large3_case_005.txt, large3/large3_case_006.txt, large3/large3_case_007.txt, large3/large3_case_008.txt, large3/large3_case_009.txt, large3/large3_case_010.txt, large3/large3_case_011.txt, large3/large3_case_012.txt, large3/large3_case_013.txt, large3/large3_case_014.txt, large3/large3_case_015.txt, large3/large3_case_016.txt, large3/large3_case_017.txt, large3/large3_case_018.txt, large3/large3_case_019.txt, large3/large3_case_020.txt, large3/large3_case_021.txt, large3/large3_case_022.txt, large3/large3_case_023.txt
Case Name Status Exec Time Memory
large1/case_000.txt AC 201 ms 860 KB
large1/case_001.txt AC 200 ms 1000 KB
large1/case_002.txt AC 199 ms 1016 KB
large1/case_003.txt AC 198 ms 856 KB
large1/case_004.txt AC 203 ms 2708 KB
large1/case_005.txt AC 201 ms 2708 KB
large1/case_006.txt AC 201 ms 2712 KB
large1/case_007.txt AC 198 ms 2708 KB
large1/case_008.txt AC 199 ms 2700 KB
large1/case_009.txt AC 201 ms 2580 KB
large1/case_010.txt AC 200 ms 2536 KB
large1/case_011.txt AC 203 ms 2664 KB
large1/case_012.txt AC 201 ms 2660 KB
large1/case_013.txt AC 203 ms 2784 KB
large1/case_014.txt AC 202 ms 2660 KB
large1/case_015.txt AC 201 ms 2668 KB
large1/case_024.txt AC 200 ms 2536 KB
large1/case_025.txt AC 199 ms 2440 KB
large1/case_026.txt AC 201 ms 2396 KB
large1/case_027.txt AC 201 ms 2584 KB
large1/large1_case_000.txt AC 342 ms 16276 KB
large1/large1_case_001.txt AC 351 ms 16276 KB
large1/large1_case_002.txt AC 367 ms 16220 KB
large1/large1_case_003.txt AC 345 ms 16236 KB
large1/large1_case_004.txt AC 383 ms 16348 KB
large1/large1_case_005.txt AC 359 ms 16360 KB
large1/large1_case_006.txt AC 367 ms 16328 KB
large1/large1_case_007.txt AC 355 ms 16360 KB
large1/large1_case_008.txt AC 372 ms 16360 KB
large1/large1_case_009.txt AC 365 ms 16352 KB
large1/large1_case_010.txt AC 368 ms 16356 KB
large1/large1_case_011.txt AC 359 ms 16284 KB
large1/large1_case_012.txt AC 368 ms 16340 KB
large1/large1_case_013.txt AC 362 ms 16324 KB
large1/large1_case_014.txt AC 359 ms 16156 KB
large1/large1_case_020.txt AC 291 ms 15964 KB
large1/large1_case_021.txt AC 287 ms 16020 KB
large1/large1_case_022.txt AC 295 ms 16096 KB
large1/large1_case_023.txt AC 297 ms 16112 KB
large3/case_000.txt AC 199 ms 864 KB
large3/case_001.txt AC 199 ms 1032 KB
large3/case_002.txt AC 198 ms 1040 KB
large3/case_003.txt AC 198 ms 864 KB
large3/case_004.txt AC 201 ms 2704 KB
large3/case_005.txt AC 202 ms 2648 KB
large3/case_006.txt AC 200 ms 2660 KB
large3/case_007.txt AC 201 ms 2644 KB
large3/case_008.txt AC 200 ms 2688 KB
large3/case_009.txt AC 200 ms 2580 KB
large3/case_010.txt AC 199 ms 2584 KB
large3/case_011.txt AC 200 ms 2664 KB
large3/case_012.txt AC 201 ms 2716 KB
large3/case_013.txt AC 202 ms 2784 KB
large3/case_014.txt AC 201 ms 2656 KB
large3/case_015.txt AC 198 ms 2704 KB
large3/case_024.txt AC 202 ms 2456 KB
large3/case_025.txt AC 200 ms 2404 KB
large3/case_026.txt AC 200 ms 2408 KB
large3/case_027.txt AC 200 ms 2696 KB
large3/large1_case_000.txt AC 366 ms 16360 KB
large3/large1_case_001.txt AC 357 ms 16376 KB
large3/large1_case_002.txt AC 372 ms 16276 KB
large3/large1_case_003.txt AC 353 ms 16232 KB
large3/large1_case_004.txt AC 364 ms 16420 KB
large3/large1_case_005.txt AC 358 ms 16280 KB
large3/large1_case_006.txt AC 349 ms 16360 KB
large3/large1_case_007.txt AC 365 ms 16264 KB
large3/large1_case_008.txt AC 377 ms 16404 KB
large3/large1_case_009.txt AC 350 ms 16360 KB
large3/large1_case_010.txt AC 368 ms 16356 KB
large3/large1_case_011.txt AC 369 ms 16224 KB
large3/large1_case_012.txt AC 349 ms 16344 KB
large3/large1_case_013.txt AC 370 ms 16232 KB
large3/large1_case_014.txt AC 367 ms 16228 KB
large3/large1_case_020.txt AC 293 ms 16024 KB
large3/large1_case_021.txt AC 288 ms 15972 KB
large3/large1_case_022.txt AC 297 ms 16108 KB
large3/large1_case_023.txt AC 293 ms 16104 KB
large3/large3_case_000.txt AC 847 ms 47072 KB
large3/large3_case_001.txt AC 863 ms 47068 KB
large3/large3_case_002.txt AC 854 ms 47376 KB
large3/large3_case_003.txt AC 841 ms 46816 KB
large3/large3_case_004.txt AC 844 ms 47336 KB
large3/large3_case_005.txt AC 847 ms 47336 KB
large3/large3_case_006.txt AC 810 ms 47084 KB
large3/large3_case_007.txt AC 831 ms 46812 KB
large3/large3_case_008.txt AC 850 ms 47328 KB
large3/large3_case_009.txt AC 829 ms 46812 KB
large3/large3_case_010.txt AC 824 ms 47072 KB
large3/large3_case_011.txt AC 846 ms 47204 KB
large3/large3_case_012.txt AC 850 ms 47416 KB
large3/large3_case_013.txt AC 830 ms 47068 KB
large3/large3_case_014.txt AC 828 ms 47460 KB
large3/large3_case_015.txt AC 829 ms 47468 KB
large3/large3_case_016.txt AC 827 ms 47464 KB
large3/large3_case_017.txt AC 844 ms 47336 KB
large3/large3_case_018.txt AC 822 ms 46992 KB
large3/large3_case_019.txt AC 827 ms 47128 KB
large3/large3_case_020.txt AC 835 ms 47460 KB
large3/large3_case_021.txt AC 785 ms 46868 KB
large3/large3_case_022.txt AC 818 ms 46948 KB
large3/large3_case_023.txt AC 812 ms 46700 KB
small/case_000.txt AC 200 ms 868 KB
small/case_001.txt AC 201 ms 920 KB
small/case_002.txt AC 197 ms 1032 KB
small/case_003.txt AC 199 ms 916 KB
small/case_004.txt AC 200 ms 2660 KB
small/case_005.txt AC 199 ms 2656 KB
small/case_006.txt AC 200 ms 2716 KB
small/case_007.txt AC 203 ms 2652 KB
small/case_008.txt AC 200 ms 2584 KB
small/case_009.txt AC 199 ms 2732 KB
small/case_010.txt AC 201 ms 2652 KB
small/case_011.txt AC 199 ms 2704 KB
small/case_012.txt AC 200 ms 2648 KB
small/case_013.txt AC 204 ms 2784 KB
small/case_014.txt AC 201 ms 2712 KB
small/case_015.txt AC 198 ms 2588 KB
small/case_024.txt AC 200 ms 2532 KB
small/case_025.txt AC 200 ms 2392 KB
small/case_026.txt AC 200 ms 2408 KB
small/case_027.txt AC 201 ms 2672 KB