Submission #17226597


Source Code Expand

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

int main()
{
    int N;
    int M;
    cin >> N >> M;
    vector<int> P_vec(N + 1, 0);
    for (int i = 1; i <= N; ++i)
        cin >> P_vec.at(i);
    vector<int> Q_vec((N + 1) * (N + 2) / 2);
    for (int i = 0; i <= N; ++i) {
        for (int j = 0; j <= i; ++j) {
            int idx = i * (i + 1) / 2 + j;
            Q_vec.at(idx) = P_vec.at(i) + P_vec.at(j);
        }
    }
    auto comp = greater<int>();
    sort(Q_vec.begin(), Q_vec.end(), comp);
    int max_score = 0;
    for (int q1 : Q_vec) {
        if (q1 > M)
            continue;
        int q2 = *lower_bound(Q_vec.begin(), Q_vec.end(), M - q1, comp);
        int score = q1 + q2;
        if (max_score < score)
            max_score = score;
    }
    cout << max_score << endl;
}

Submission Info

Submission Time
Task C - ダーツ
User atug
Language C++ (GCC 9.2.1)
Score 20
Code Size 800 Byte
Status AC
Exec Time 71 ms
Memory 5364 KiB

Judge Result

Set Name set01 set02 set03 set04 set05 set06 set07 set08 set09 set10
Score / Max Score 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
set06 data6
set07 data7
set08 data8
set09 data9
set10 data10
Case Name Status Exec Time Memory
data1 AC 11 ms 3600 KiB
data10 AC 63 ms 5048 KiB
data2 AC 7 ms 3572 KiB
data3 AC 11 ms 3392 KiB
data4 AC 9 ms 3600 KiB
data5 AC 7 ms 3596 KiB
data6 AC 62 ms 4988 KiB
data7 AC 71 ms 5004 KiB
data8 AC 61 ms 5364 KiB
data9 AC 67 ms 5048 KiB