/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 408.0 KiB
#3 Accepted 1ms 532.0 KiB
#4 Accepted 1ms 480.0 KiB
#5 Accepted 17ms 396.0 KiB
#6 Accepted 12ms 532.0 KiB
#7 Accepted 30ms 2.02 MiB
#8 Accepted 65ms 2.062 MiB
#9 Accepted 40ms 2.02 MiB
#10 Accepted 37ms 2.02 MiB
#11 Accepted 18ms 532.0 KiB
#12 Accepted 17ms 568.0 KiB
#13 Accepted 23ms 2.062 MiB
#14 Accepted 44ms 2.062 MiB
#15 Accepted 21ms 568.0 KiB
#16 Accepted 22ms 532.0 KiB
#17 Accepted 16ms 580.0 KiB

Code

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

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int T; cin >> T;
    while (T--) {
        int N; cin >> N;
        vector<long long> A(N);
        for (int i = 0; i < N; i++) cin >> A[i];
        sort(A.rbegin(), A.rend());

        vector<vector<vector<long long>>> curr(2, vector<vector<long long>>(2, vector<long long>(2)));
        vector<vector<vector<long long>>> next(2, vector<vector<long long>>(2, vector<long long>(2, 0)));

        for (int i = N - 1; i >= 0; i--) {
            for (int t = 0; t <= 1; t++) {
                for (int mr = 0; mr <= 1; mr++) {
                    for (int mh = 0; mh <= 1; mh++) {
                        long long stop_val = (mr && mh) ? 0 : LLONG_MIN;
                        if (t == 0) {
                            long long pick_val = A[i] + next[1][1][mh];
                            curr[t][mr][mh] = max(stop_val, pick_val);
                        } else {
                            long long pick_val = -A[i] + next[0][mr][1];
                            if (stop_val == LLONG_MIN)
                                curr[t][mr][mh] = pick_val;
                            else
                                curr[t][mr][mh] = min(stop_val, pick_val);
                        }
                    }
                }
            }
            swap(curr, next);
        }

        cout << next[0][0][0] << "\n";
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1208 C. Game on Integer
Contest
Educational Round 1
Language
C++17 (G++ 13.2.0)
Submit At
2025-07-14 16:21:24
Judged At
2025-07-14 16:21:24
Judged By
Score
100
Total Time
65ms
Peak Memory
2.062 MiB