QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#127527#2785. Boxes with souvenirsQwerty1232#20 0ms3948kbC++201.7kb2023-07-19 19:21:452024-07-04 00:46:52

Judging History

你现在查看的是最新测评结果

  • [2024-07-04 00:46:52]
  • 评测
  • 测评结果:20
  • 用时:0ms
  • 内存:3948kb
  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-07-19 19:21:45]
  • 提交

answer

#include "boxes.h"

#include <bits/stdc++.h>

long long delivery(int n, int k, int L, int p[]) {
    while (n && *p == 0) {
        n--;
        p++;
    }
    if (n == 0 || L == 1) {
        return 0;
    }
    k = std::min(k, n);

    int it = std::lower_bound(p, p + n, (L + 1) / 2) - p;
    assert(std::is_sorted(p, p + n));

    int left = it / k * k;
    int right = n - (n - it) / k * k;
    assert(left <= right);

    int64_t ans = 0;
    for (int i = 0; i < left; i += k) {
        ans += 2 * p[i + k - 1];
    }
    for (int i = n - 1; i >= right; i -= k) {
        ans += 2 * (L - p[i - k + 1]);
    }
    if (left == it || right == it) {
        if (left == it && right == it) {
            return ans;
        } else if (left == it) {
            ans += 2 * (L - p[it]);
        } else {
            ans += 2 * p[it - 1];
        }
        return ans;
    }
    int64_t min = 2 * L;
    if (right - left <= k) {
        min = std::min<int64_t>(min, L);
    }
    min = std::min<int64_t>(min, 2 * (p[it - 1] + L - p[it]));
    for (int i = left; i < right; i++) {
        if (i - left < k && i < it) {
            min = std::min<int64_t>(min, L + 2 * p[i]);
        }
        if (right - i <= k && i >= it) {
            min = std::min<int64_t>(min, L + 2 * (L - p[i]));
        }
    }
    // ans += 2 * (L - p[it]);
    // ans += 2 * p[it - 1];

    ans += min;

    // int64_t ans1 = 0;
    // for (int i = 0; i < it; i += k) {
    //     int nx = std::min(it - 1, i + k - 1);
    //     ans1 += 2 * p[nx];
    // }
    // for (int i = n - 1; i >= it; i -= k) {
    //     int nx = std::max(it, i - k + 1);
    //     ans1 += 2 * (L - p[nx]);
    // }
    // ans = std::min(ans, ans1);

    return ans;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 0ms
memory: 3944kb

input:

1 1 1000000000
210758687

output:

421517374

result:

ok single line: '421517374'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3760kb

input:

1000 1 1000000000
1808509 2182084 3015527 4447494 7769779 8792029 9883237 12829051 12902231 13338930 16688684 16992515 17866419 19063417 20124997 20125047 20514891 20917910 24004241 25917774 30411202 34419407 34944244 36371532 36402573 39271076 39612282 40912226 41119528 41176691 42741034 42801382 4...

output:

511681980406

result:

ok single line: '511681980406'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3824kb

input:

1000 1 1000
2 3 4 4 4 7 7 8 10 12 12 13 14 15 16 16 17 17 18 21 22 23 24 24 25 28 30 30 30 30 32 32 34 34 34 34 35 35 35 35 35 36 36 36 37 39 41 42 42 43 43 44 44 44 45 46 46 46 47 48 49 51 52 53 55 56 58 60 61 61 62 63 64 68 69 70 72 74 75 76 76 76 78 78 80 81 83 83 84 84 85 85 86 86 88 88 90 92 92...

output:

511638

result:

ok single line: '511638'

Test #4:

score: 0
Accepted
time: 0ms
memory: 3948kb

input:

1000 1 5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

2322

result:

ok single line: '2322'

Test #5:

score: 0
Accepted
time: 0ms
memory: 3784kb

input:

1000 1 1000000000
447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 447532220 44...

output:

895064440000

result:

ok single line: '895064440000'

Test #6:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

1000 1 1000000000
18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 18457857 61895049 61895049 61895049 61895049 61895049 61895049 61895049 61895049 61895049 61895049 618...

output:

619577021140

result:

ok single line: '619577021140'

Test #7:

score: 0
Accepted
time: 0ms
memory: 3828kb

input:

1000 1 1000000000
159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 159227065 15...

output:

294049546692

result:

ok single line: '294049546692'

Subtask #2:

score: 10
Accepted

Test #8:

score: 10
Accepted
time: 0ms
memory: 3760kb

input:

1000 1000 1000
0 0 1 2 3 3 4 5 5 6 6 7 8 8 8 9 10 11 11 11 12 13 13 13 14 14 15 16 17 17 17 18 20 20 21 21 24 25 25 26 30 31 34 34 35 38 40 43 44 46 46 46 47 47 51 52 52 52 55 56 58 62 64 65 67 68 69 72 73 75 76 77 78 79 79 80 83 84 85 85 86 86 87 88 88 88 92 92 92 95 95 96 98 98 99 99 100 100 101 1...

output:

1000

result:

ok single line: '1000'

Test #9:

score: 0
Accepted
time: 0ms
memory: 3828kb

input:

1000 1000 5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

output:

5

result:

ok single line: '5'

Test #10:

score: 0
Accepted
time: 0ms
memory: 3944kb

input:

1000 1000 1000000000
154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846 154376846...

output:

308753692

result:

ok single line: '308753692'

Test #11:

score: 0
Accepted
time: 0ms
memory: 3824kb

input:

1000 1000 1000000000
198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287 198812287...

output:

1000000000

result:

ok single line: '1000000000'

Test #12:

score: 0
Accepted
time: 0ms
memory: 3876kb

input:

1000 1000 1000000000
84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 84700188 ...

output:

665477708

result:

ok single line: '665477708'

Test #13:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

1000 1000 1000000000
999000464 999001671 999001764 999002621 999002638 999003276 999003514 999005294 999005677 999005939 999006089 999008721 999009077 999012938 999014321 999015139 999015321 999015639 999016078 999016400 999016872 999017560 999017819 999018653 999019793 999019959 999021115 999021456...

output:

1999072

result:

ok single line: '1999072'

Test #14:

score: 0
Accepted
time: 0ms
memory: 3760kb

input:

1000 1000 1000
800 800 800 800 800 800 800 800 800 800 800 800 801 801 801 801 801 801 802 802 802 802 802 802 803 803 803 803 804 804 805 805 805 805 806 806 806 806 806 806 806 807 807 807 807 807 807 807 807 807 807 808 808 808 808 808 808 809 809 809 809 809 810 810 810 810 811 811 811 811 812 8...

output:

400

result:

ok single line: '400'

Subtask #3:

score: 0
Wrong Answer

Test #15:

score: 15
Accepted
time: 0ms
memory: 3832kb

input:

10 5 5
0 0 0 0 0 1 3 3 3 4

output:

5

result:

ok single line: '5'

Test #16:

score: 0
Accepted
time: 0ms
memory: 3844kb

input:

10 5 1000000000
334882664 334882664 334882664 334882664 334882664 334882664 334882664 334882664 334882664 334882664

output:

1339530656

result:

ok single line: '1339530656'

Test #17:

score: 0
Accepted
time: 0ms
memory: 3840kb

input:

10 2 1000000000
85975415 85975415 85975415 85975415 85975415 85975415 85975415 85975415 85975415 105352579

output:

898508478

result:

ok single line: '898508478'

Test #18:

score: 0
Accepted
time: 0ms
memory: 3776kb

input:

10 2 1000000000
450369670 450369670 450369670 450369670 450369670 450369670 450369670 450369670 973255696 973255696

output:

3656445968

result:

ok single line: '3656445968'

Test #19:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

10 10 1000000000
20859 165911 251492 256622 477740 805842 835605 999196078 999415731 999776268

output:

3279054

result:

ok single line: '3279054'

Test #20:

score: -15
Wrong Answer
time: 0ms
memory: 3828kb

input:

10 5 1000
7 63 166 821 853 857 930 934 989 995

output:

976

result:

wrong answer 1st lines differ - expected: '712', found: '976'

Subtask #4:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Dependency #3:

0%

Subtask #5:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Dependency #3:

0%

Subtask #6:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Dependency #3:

0%