Submission #17876430


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

int main()
{
    static const int64_t inf = 1e+13;
    int N;
    cin >> N;
    vector<int64_t> A_vec(N);
    for (int i = 0; i < N; ++i)
        cin >> A_vec.at(i);
    vector<vector<int64_t>> dp(N/2 + 1, vector<int64_t>(N, -inf));
    for (int j = 0; j < N; ++j)
        dp.at(0).at(j) = 0;
    for (int i = 0; i < N/2; ++i) {
        for (int j = 0; j < N; ++j) {
            int j1 = (j + 1) % N;
            int j2 = (j + 2*i) % N;
            int j3 = (j - 1 + N) % N;
            int j4 = (j + 2*i + 1) % N;
            int64_t A_j = A_vec.at(j);
            int64_t A_j2 = A_vec.at(j2);
            int64_t tmp = max(dp[i][j] + A_j2, dp[i][j1] + A_j);
            if (A_vec.at(j3) < A_vec.at(j4))
                dp[i + 1][j] = max(dp[i + 1][j], tmp);
            else
                dp[i + 1][j3] = max(dp[i + 1][j3], tmp);
        }
    }
    if (N % 2 == 0) {
        cout << *max_element(dp[N/2].begin(), dp[N/2].end()) << endl;
        return 0;
    }
    int64_t max_sum = -1;
    for (int j = 0; j < N; ++j) {
        int j3 = (j + N - 1) % N;
        int64_t sum = dp[N/2][j] + A_vec.at(j3);
        if (max_sum < sum)
            max_sum = sum;
    }
    cout << max_sum << endl;
}

Submission Info

Submission Time
Task B - ケーキの切り分け2 (Cake 2)
User atug
Language C++ (GCC 9.2.1)
Score 100
Code Size 1247 Byte
Status AC
Exec Time 61 ms
Memory 19072 KiB

Judge Result

Set Name Subtask01 Subtask02 Subtask03
Score / Max Score 15 / 15 45 / 45 40 / 40
Status
AC × 13
AC × 23
AC × 33
Set Name Test Cases
Subtask01 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt
Subtask02 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt
Subtask03 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt
Case Name Status Exec Time Memory
01-01.txt AC 8 ms 3576 KiB
01-02.txt AC 2 ms 3520 KiB
01-03.txt AC 2 ms 3444 KiB
01-04.txt AC 2 ms 3468 KiB
01-05.txt AC 2 ms 3444 KiB
01-06.txt AC 3 ms 3604 KiB
01-07.txt AC 2 ms 3580 KiB
01-08.txt AC 2 ms 3380 KiB
01-09.txt AC 3 ms 3444 KiB
01-10.txt AC 2 ms 3520 KiB
02-01.txt AC 3 ms 3588 KiB
02-02.txt AC 3 ms 3560 KiB
02-03.txt AC 4 ms 3556 KiB
02-04.txt AC 4 ms 3836 KiB
02-05.txt AC 6 ms 3836 KiB
02-06.txt AC 5 ms 3836 KiB
02-07.txt AC 5 ms 3748 KiB
02-08.txt AC 7 ms 3744 KiB
02-09.txt AC 5 ms 3836 KiB
02-10.txt AC 7 ms 3872 KiB
03-01.txt AC 8 ms 4572 KiB
03-02.txt AC 18 ms 7040 KiB
03-03.txt AC 60 ms 18892 KiB
03-04.txt AC 23 ms 6956 KiB
03-05.txt AC 56 ms 18968 KiB
03-06.txt AC 61 ms 18968 KiB
03-07.txt AC 56 ms 19012 KiB
03-08.txt AC 56 ms 18984 KiB
03-09.txt AC 56 ms 19072 KiB
03-10.txt AC 60 ms 18860 KiB
sample-01.txt AC 8 ms 3464 KiB
sample-02.txt AC 2 ms 3608 KiB
sample-03.txt AC 3 ms 3580 KiB