Submission #860647

# Submission time Handle Problem Language Result Execution time Memory
860647 2023-10-13T15:26:32 Z E869120 Uplifting Excursion (BOI22_vault) C++14
80 / 100
5000 ms 54048 KB
#include <bits/stdc++.h>
using namespace std;
 
vector<long long> SolveDP(long long N, long long LIM, vector<long long> List, vector<long long> Init) {
    vector<long long> dp(LIM + 1, -(1LL << 60));
    if (Init.size() == 0) dp[0] = 0;
    else {
        for (int i = 0; i < (int)Init.size(); i++) dp[i] = Init[i];
    }
 
    // DP Start
    for (int i = 0; i < N; i++) {
        vector<long long> ndp(LIM + 1, -(1LL << 60));
        long long kazu = i + 1;
        for (int j = 0; j < kazu; j++) {
            vector<pair<long long, long long>> maxi;
            int cur = 0;
            for (int k = j; k <= LIM; k += kazu) {
                long long val = dp[k] - (k / kazu);
                while (maxi.size() >= cur + 1) {
                    if (maxi[maxi.size() - 1].second <= val) maxi.pop_back();
                    else break;
                }
                maxi.push_back(make_pair(1LL * k, val));
                if (maxi[cur].second >= -(1LL << 59)) ndp[k] = maxi[cur].second + (k / kazu);
                while (cur < (int)maxi.size() && maxi[cur].first <= k - 1LL * kazu * List[i]) cur += 1;
            }
        }
        dp = ndp;
    }
 
    // Return
    return dp;
}

vector<long long> SolveDP2(long long N, long long LIM, vector<long long> List) {
    vector<long long> dp(LIM + 1, -(1LL << 60));
    vector<long long> ret(N, 0);
    dp[0] = 0;
 
    // DP Start
    for (int i = N - 1; i >= 0; i--) {
        for (int j = 1; j <= min(N, List[i]); j++) {
            if (dp[(i + 1) * j] == -(1LL << 60)) ret[i] += 1;
            else break;
        }
        vector<long long> ndp(LIM + 1, -(1LL << 60));
        long long kazu = i + 1;
        for (int j = 0; j < kazu; j++) {
            vector<pair<long long, long long>> maxi;
            int cur = 0;
            for (int k = j; k <= LIM; k += kazu) {
                long long val = dp[k] - (k / kazu);
                while (maxi.size() >= cur + 1) {
                    if (maxi[maxi.size() - 1].second <= val) maxi.pop_back();
                    else break;
                }
                maxi.push_back(make_pair(1LL * k, val));
                if (maxi[cur].second >= -(1LL << 59)) ndp[k] = maxi[cur].second + (k / kazu);
                while (cur < (int)maxi.size() && maxi[cur].first <= k - 1LL * kazu * List[i]) cur += 1;
            }
        }
        dp = ndp;
    }
 
    // Return
    return ret;
}

long long Solve_Subtask5(long long M, long long L, vector<long long> A) {
    if (L < 0) return -1;
    vector<long long> All;
    for (int i = M + 1; i <= 2 * M; i++) All.push_back(A[i]);

    // Step 1. First DP
    long long Load = 0;
    vector<long long> L0 = SolveDP2(M, M * M + 1, All);
    for (int i = 0; i < M; i++) Load += 1LL * (i + 1) * L0[i];

    // Step 2. Greedy
    vector<long long> L1(M, 0);
    vector<long long> L2(M, 0);
    long long rem = L - Load;
    long long ans = 0;
    for (int i = 0; i < M; i++) {
        if (rem < 0) continue;
        L1[i] = min(All[i] - L0[i], rem / (i + 1));
        ans += L1[i];
        rem -= 1LL * (i + 1) * L1[i];
    }
    for (int i = 0; i < M; i++) L2[i] = All[i] - L1[i];
    if (rem > M) return -1;

    // Step 2. DP
    vector<long long> dp = SolveDP(M, Load + rem, L2, vector<long long>{});
    if (dp[Load + rem] == -(1LL << 60)) return -1;
    return dp[Load + rem] + ans + A[M];
}
 
long long Solve_Subtask2(long long M, long long L, vector<long long> A) {
    // Step 1. Calculate
    vector<long long> A1;
    vector<long long> A2;
    for (int i = M - 1; i >= 0; i--) A1.push_back(A[i]);
    for (int i = M + 1; i <= 2 * M; i++) A2.push_back(A[i]);
    vector<long long> DP1 = SolveDP(M, 700000, A1, vector<long long>{});
    vector<long long> DP2 = SolveDP(M, 700000, A2, vector<long long>{});
 
    // Step 2. Output
    long long Answer = -(1LL << 60);
    for (long long i = 0; i <= 700000LL - abs(L); i++) {
        long long idx1 = i;
        long long idx2 = i + abs(L); if (L < 0) swap(idx1, idx2);
        Answer = max(Answer, DP1[idx1] + DP2[idx2]);
    }
    if (Answer < 0LL) return -1;
    return Answer + A[M];
}

long long Solve_Subtask3(long long M, long long L, vector<long long> A) {
    long long Baseln = (M + 1) * M * M / 2LL;
    vector<long long> L1(M + 1, 0);
    vector<long long> L2(M + 1, 0);
    vector<long long> L3(M, 0);
    vector<long long> L4(M, 0);
    vector<long long> M1(M + 1, 0);
    vector<long long> M2(M + 1, 0);
    vector<pair<long long, long long>> Cand1; Cand1.push_back(make_pair(0, 0));
    vector<pair<long long, long long>> Cand2; Cand2.push_back(make_pair(0, 0));
 
    // Step 1. Set Up
    for (int i = 0; i <= M - 1; i++) {
        int idx = M - i;
        long long Threshold = M;
        L1[idx - 0] = A[i] - min(A[i], Threshold);
        L3[idx - 1] = min(A[i], Threshold);
    }
    for (int i = M + 1; i <= 2 * M; i++) {
        int idx = i - M;
        long long Threshold = M;
        L2[idx - 0] = A[i] - min(A[i], Threshold);
        L4[idx - 1] = min(A[i], Threshold);
    }
 
    // Step 2. Base DP
    vector<long long> dp1 = SolveDP(M, Baseln, L3, vector<long long>{});
    vector<long long> dp2 = vector<long long>(Baseln + 1, -(1LL << 60));
    for (int i = 0; i <= Baseln; i++) dp2[Baseln - i] = dp1[i];
    vector<long long> dp3 = SolveDP(M, Baseln * 2, L4, dp2);
 
    // Step 3. Get Theoritical Value
    long long a1 = 0;
    long long a2 = 0;
    for (int i = 1; i <= M; i++) a1 += 1LL * i * L1[i];
    for (int i = 1; i <= M; i++) a2 += 1LL * i * L2[i];
    if (a2 - a1 > L) a2 = a1 + L;
    else a1 = a2 - L;
    if (a1 + Baseln < 0 || a2 + Baseln < 0) return -1;
 
    // Step 4. Get Candiates for L1
    long long rem1 = a1 + Baseln;
    long long cnt1 = 0;
    for (int i = 1; i <= M; i++) {
        M1[i] = min(L1[i], rem1 / i);
        rem1 -= 1LL * i * M1[i];
        cnt1 += M1[i];
    }
    for (int i = M; i >= 1; i--) {
        for (long long j = 0; j < M1[i]; j++) {
            Cand1.push_back(make_pair((a1 + Baseln) - rem1, cnt1));
            rem1 += 1LL * i;
            cnt1 -= 1LL;
            if (rem1 > 2LL * Baseln) break;
        }
        if (rem1 > 2LL * Baseln) break;
    }
 
    // Step 5. Get Candidates for L2
    long long rem2 = a2 + Baseln;
    long long cnt2 = 0;
    for (int i = 1; i <= M; i++) {
        M2[i] = min(L2[i], rem2 / i);
        rem2 -= 1LL * i * M2[i];
        cnt2 += M2[i];
    }
    for (int i = M; i >= 1; i--) {
        for (long long j = 0; j < M2[i]; j++) {
            Cand2.push_back(make_pair((a2 + Baseln) - rem2, cnt2));
            rem2 += 1LL * i;
            cnt2 -= 1LL;
            if (rem2 > 2LL * Baseln) break;
        }
        if (rem2 > 2LL * Baseln) break;
    }
    // cout << "L1 = "; for (int i = 1; i <= M; i++) cout << L1[i] << " "; cout << endl;
    // cout << "L2 = "; for (int i = 1; i <= M; i++) cout << L2[i] << " "; cout << endl;
    // cout << "Cand1 = "; for (int i = 0; i < Cand1.size(); i++) cout << "(" << Cand1[i].first << "," << Cand1[i].second << ") "; cout << endl;
    // cout << "Cand2 = "; for (int i = 0; i < Cand2.size(); i++) cout << "(" << Cand2[i].first << "," << Cand2[i].second << ") "; cout << endl;
 
    // Step 6. Brute Force
    long long Answer = -(1LL << 60);
    for (pair<long long, long long> v1 : Cand1) {
        for (pair<long long, long long> v2 : Cand2) {
            long long diff = L - (v2.first - v1.first);
            if (diff < -Baseln || diff > Baseln) continue;
            if (dp3[diff + Baseln] == -(1LL << 60)) continue;
            Answer = max(Answer, v1.second + v2.second + dp3[diff + Baseln]);
        }
    }
 
    // Step 7. Output
    if (Answer == -(1LL << 60)) return -1;
    return Answer + A[M];
}
 
int main() {
    // Input
    long long M, L;
    cin >> M >> L;
    vector<long long> A(2 * M + 1, 0);
    for (int i = 0; i <= 2 * M; i++) cin >> A[i];
 
    // Judge if Subtask 2
    bool Subtask2 = true;
    if (M > 100) Subtask2 = false;
    for (int i = 0; i <= 2 * M; i++) {
        if (A[i] > 100) Subtask2 = false;
    }

    // Judge if Subtask 5
    bool Subtask5 = true;
    for (int i = 0; i <  M; i++) {
        if (A[i] > 0) Subtask5 = false;
    }
 
    // Execution
    long long Answer = 0;
    if (Subtask2 == true) Answer = Solve_Subtask2(M, L, A);
    else if (Subtask5 == true) Answer = Solve_Subtask5(M, L, A);
    else Answer = Solve_Subtask3(M, L, A);

    // Output
    if (Answer == -1) cout << "impossible" << endl;
    else cout << Answer << endl;
    return 0;
}

Compilation message

vault.cpp: In function 'std::vector<long long int> SolveDP(long long int, long long int, std::vector<long long int>, std::vector<long long int>)':
vault.cpp:20:36: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   20 |                 while (maxi.size() >= cur + 1) {
      |                        ~~~~~~~~~~~~^~~~~~~~~~
vault.cpp: In function 'std::vector<long long int> SolveDP2(long long int, long long int, std::vector<long long int>)':
vault.cpp:54:36: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 |                 while (maxi.size() >= cur + 1) {
      |                        ~~~~~~~~~~~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 50 ms 44644 KB Output is correct
2 Correct 70 ms 45424 KB Output is correct
3 Correct 32 ms 45448 KB Output is correct
4 Correct 186 ms 45924 KB Output is correct
5 Correct 779 ms 45784 KB Output is correct
6 Correct 777 ms 45164 KB Output is correct
7 Correct 856 ms 45256 KB Output is correct
8 Correct 775 ms 45228 KB Output is correct
9 Correct 781 ms 44696 KB Output is correct
10 Correct 870 ms 44472 KB Output is correct
11 Correct 860 ms 46224 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 50 ms 44644 KB Output is correct
2 Correct 70 ms 45424 KB Output is correct
3 Correct 32 ms 45448 KB Output is correct
4 Correct 186 ms 45924 KB Output is correct
5 Correct 779 ms 45784 KB Output is correct
6 Correct 777 ms 45164 KB Output is correct
7 Correct 856 ms 45256 KB Output is correct
8 Correct 775 ms 45228 KB Output is correct
9 Correct 781 ms 44696 KB Output is correct
10 Correct 870 ms 44472 KB Output is correct
11 Correct 860 ms 46224 KB Output is correct
12 Correct 50 ms 45748 KB Output is correct
13 Correct 69 ms 45232 KB Output is correct
14 Correct 33 ms 45236 KB Output is correct
15 Correct 188 ms 44240 KB Output is correct
16 Correct 778 ms 46016 KB Output is correct
17 Correct 794 ms 46124 KB Output is correct
18 Correct 833 ms 45028 KB Output is correct
19 Correct 783 ms 46088 KB Output is correct
20 Correct 809 ms 45004 KB Output is correct
21 Correct 886 ms 45200 KB Output is correct
22 Correct 864 ms 47736 KB Output is correct
23 Correct 1538 ms 45212 KB Output is correct
24 Correct 1591 ms 44584 KB Output is correct
25 Correct 1662 ms 44288 KB Output is correct
26 Correct 1575 ms 47760 KB Output is correct
27 Correct 1588 ms 44944 KB Output is correct
28 Correct 1756 ms 44672 KB Output is correct
29 Correct 1788 ms 44544 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 194 ms 45356 KB Output is correct
2 Correct 2 ms 344 KB Output is correct
3 Correct 1 ms 600 KB Output is correct
4 Correct 2 ms 348 KB Output is correct
5 Correct 2 ms 604 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 432 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 520 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 194 ms 45356 KB Output is correct
2 Correct 2 ms 344 KB Output is correct
3 Correct 1 ms 600 KB Output is correct
4 Correct 2 ms 348 KB Output is correct
5 Correct 2 ms 604 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 432 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 520 KB Output is correct
11 Correct 52 ms 44748 KB Output is correct
12 Correct 71 ms 44692 KB Output is correct
13 Correct 32 ms 46176 KB Output is correct
14 Correct 202 ms 45872 KB Output is correct
15 Correct 2 ms 344 KB Output is correct
16 Correct 1 ms 344 KB Output is correct
17 Correct 2 ms 348 KB Output is correct
18 Correct 2 ms 600 KB Output is correct
19 Correct 2 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
21 Correct 1 ms 348 KB Output is correct
22 Correct 1 ms 348 KB Output is correct
23 Correct 1 ms 436 KB Output is correct
24 Correct 15 ms 1872 KB Output is correct
25 Correct 16 ms 1788 KB Output is correct
26 Correct 19 ms 1824 KB Output is correct
27 Correct 15 ms 1788 KB Output is correct
28 Correct 27 ms 1788 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 194 ms 45356 KB Output is correct
2 Correct 2 ms 344 KB Output is correct
3 Correct 1 ms 600 KB Output is correct
4 Correct 2 ms 348 KB Output is correct
5 Correct 2 ms 604 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 432 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 520 KB Output is correct
11 Correct 190 ms 44684 KB Output is correct
12 Correct 2 ms 348 KB Output is correct
13 Correct 1 ms 436 KB Output is correct
14 Correct 2 ms 600 KB Output is correct
15 Correct 2 ms 612 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
21 Correct 891 ms 44356 KB Output is correct
22 Correct 888 ms 44492 KB Output is correct
23 Correct 8 ms 856 KB Output is correct
24 Correct 7 ms 600 KB Output is correct
25 Correct 7 ms 604 KB Output is correct
26 Correct 8 ms 860 KB Output is correct
27 Correct 7 ms 860 KB Output is correct
28 Correct 4 ms 696 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 50 ms 44644 KB Output is correct
2 Correct 70 ms 45424 KB Output is correct
3 Correct 32 ms 45448 KB Output is correct
4 Correct 186 ms 45924 KB Output is correct
5 Correct 779 ms 45784 KB Output is correct
6 Correct 777 ms 45164 KB Output is correct
7 Correct 856 ms 45256 KB Output is correct
8 Correct 775 ms 45228 KB Output is correct
9 Correct 781 ms 44696 KB Output is correct
10 Correct 870 ms 44472 KB Output is correct
11 Correct 860 ms 46224 KB Output is correct
12 Correct 194 ms 45356 KB Output is correct
13 Correct 2 ms 344 KB Output is correct
14 Correct 1 ms 600 KB Output is correct
15 Correct 2 ms 348 KB Output is correct
16 Correct 2 ms 604 KB Output is correct
17 Correct 2 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 432 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
21 Correct 1 ms 520 KB Output is correct
22 Correct 52 ms 44748 KB Output is correct
23 Correct 71 ms 44692 KB Output is correct
24 Correct 32 ms 46176 KB Output is correct
25 Correct 202 ms 45872 KB Output is correct
26 Correct 2 ms 344 KB Output is correct
27 Correct 1 ms 344 KB Output is correct
28 Correct 2 ms 348 KB Output is correct
29 Correct 2 ms 600 KB Output is correct
30 Correct 2 ms 348 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 1 ms 348 KB Output is correct
33 Correct 1 ms 348 KB Output is correct
34 Correct 1 ms 436 KB Output is correct
35 Correct 15 ms 1872 KB Output is correct
36 Correct 16 ms 1788 KB Output is correct
37 Correct 19 ms 1824 KB Output is correct
38 Correct 15 ms 1788 KB Output is correct
39 Correct 27 ms 1788 KB Output is correct
40 Correct 190 ms 44684 KB Output is correct
41 Correct 2 ms 348 KB Output is correct
42 Correct 1 ms 436 KB Output is correct
43 Correct 2 ms 600 KB Output is correct
44 Correct 2 ms 612 KB Output is correct
45 Correct 1 ms 348 KB Output is correct
46 Correct 1 ms 348 KB Output is correct
47 Correct 1 ms 348 KB Output is correct
48 Correct 1 ms 348 KB Output is correct
49 Correct 1 ms 348 KB Output is correct
50 Correct 891 ms 44356 KB Output is correct
51 Correct 888 ms 44492 KB Output is correct
52 Correct 8 ms 856 KB Output is correct
53 Correct 7 ms 600 KB Output is correct
54 Correct 7 ms 604 KB Output is correct
55 Correct 8 ms 860 KB Output is correct
56 Correct 7 ms 860 KB Output is correct
57 Correct 4 ms 696 KB Output is correct
58 Correct 52 ms 44592 KB Output is correct
59 Correct 71 ms 45236 KB Output is correct
60 Correct 31 ms 44668 KB Output is correct
61 Correct 190 ms 45308 KB Output is correct
62 Correct 804 ms 44532 KB Output is correct
63 Correct 817 ms 45868 KB Output is correct
64 Correct 860 ms 47708 KB Output is correct
65 Correct 819 ms 45712 KB Output is correct
66 Correct 785 ms 45480 KB Output is correct
67 Correct 878 ms 44668 KB Output is correct
68 Correct 864 ms 46252 KB Output is correct
69 Correct 2 ms 348 KB Output is correct
70 Correct 1 ms 348 KB Output is correct
71 Correct 2 ms 348 KB Output is correct
72 Correct 2 ms 436 KB Output is correct
73 Correct 2 ms 348 KB Output is correct
74 Correct 1 ms 348 KB Output is correct
75 Correct 1 ms 436 KB Output is correct
76 Correct 1 ms 348 KB Output is correct
77 Correct 1 ms 344 KB Output is correct
78 Correct 15 ms 1784 KB Output is correct
79 Correct 16 ms 1784 KB Output is correct
80 Correct 18 ms 1784 KB Output is correct
81 Correct 15 ms 1788 KB Output is correct
82 Correct 24 ms 1788 KB Output is correct
83 Correct 7 ms 856 KB Output is correct
84 Correct 7 ms 604 KB Output is correct
85 Correct 6 ms 604 KB Output is correct
86 Correct 8 ms 860 KB Output is correct
87 Correct 7 ms 860 KB Output is correct
88 Correct 4 ms 604 KB Output is correct
89 Correct 110 ms 6804 KB Output is correct
90 Correct 115 ms 6888 KB Output is correct
91 Correct 117 ms 6792 KB Output is correct
92 Correct 235 ms 6888 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 194 ms 45356 KB Output is correct
2 Correct 2 ms 344 KB Output is correct
3 Correct 1 ms 600 KB Output is correct
4 Correct 2 ms 348 KB Output is correct
5 Correct 2 ms 604 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 432 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 520 KB Output is correct
11 Correct 190 ms 44684 KB Output is correct
12 Correct 2 ms 348 KB Output is correct
13 Correct 1 ms 436 KB Output is correct
14 Correct 2 ms 600 KB Output is correct
15 Correct 2 ms 612 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
21 Correct 891 ms 44356 KB Output is correct
22 Correct 888 ms 44492 KB Output is correct
23 Correct 8 ms 856 KB Output is correct
24 Correct 7 ms 600 KB Output is correct
25 Correct 7 ms 604 KB Output is correct
26 Correct 8 ms 860 KB Output is correct
27 Correct 7 ms 860 KB Output is correct
28 Correct 4 ms 696 KB Output is correct
29 Correct 192 ms 44352 KB Output is correct
30 Correct 2 ms 344 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 2 ms 348 KB Output is correct
33 Correct 2 ms 604 KB Output is correct
34 Correct 2 ms 344 KB Output is correct
35 Correct 1 ms 348 KB Output is correct
36 Correct 1 ms 348 KB Output is correct
37 Correct 1 ms 348 KB Output is correct
38 Correct 1 ms 348 KB Output is correct
39 Correct 859 ms 47628 KB Output is correct
40 Correct 888 ms 45440 KB Output is correct
41 Correct 7 ms 860 KB Output is correct
42 Correct 7 ms 716 KB Output is correct
43 Correct 6 ms 600 KB Output is correct
44 Correct 8 ms 856 KB Output is correct
45 Correct 7 ms 860 KB Output is correct
46 Correct 4 ms 604 KB Output is correct
47 Correct 1719 ms 44844 KB Output is correct
48 Correct 1723 ms 45800 KB Output is correct
49 Correct 50 ms 2276 KB Output is correct
50 Correct 35 ms 1444 KB Output is correct
51 Correct 65 ms 2296 KB Output is correct
52 Correct 67 ms 2308 KB Output is correct
53 Correct 58 ms 2272 KB Output is correct
54 Correct 32 ms 1544 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 50 ms 44644 KB Output is correct
2 Correct 70 ms 45424 KB Output is correct
3 Correct 32 ms 45448 KB Output is correct
4 Correct 186 ms 45924 KB Output is correct
5 Correct 779 ms 45784 KB Output is correct
6 Correct 777 ms 45164 KB Output is correct
7 Correct 856 ms 45256 KB Output is correct
8 Correct 775 ms 45228 KB Output is correct
9 Correct 781 ms 44696 KB Output is correct
10 Correct 870 ms 44472 KB Output is correct
11 Correct 860 ms 46224 KB Output is correct
12 Correct 50 ms 45748 KB Output is correct
13 Correct 69 ms 45232 KB Output is correct
14 Correct 33 ms 45236 KB Output is correct
15 Correct 188 ms 44240 KB Output is correct
16 Correct 778 ms 46016 KB Output is correct
17 Correct 794 ms 46124 KB Output is correct
18 Correct 833 ms 45028 KB Output is correct
19 Correct 783 ms 46088 KB Output is correct
20 Correct 809 ms 45004 KB Output is correct
21 Correct 886 ms 45200 KB Output is correct
22 Correct 864 ms 47736 KB Output is correct
23 Correct 1538 ms 45212 KB Output is correct
24 Correct 1591 ms 44584 KB Output is correct
25 Correct 1662 ms 44288 KB Output is correct
26 Correct 1575 ms 47760 KB Output is correct
27 Correct 1588 ms 44944 KB Output is correct
28 Correct 1756 ms 44672 KB Output is correct
29 Correct 1788 ms 44544 KB Output is correct
30 Correct 194 ms 45356 KB Output is correct
31 Correct 2 ms 344 KB Output is correct
32 Correct 1 ms 600 KB Output is correct
33 Correct 2 ms 348 KB Output is correct
34 Correct 2 ms 604 KB Output is correct
35 Correct 2 ms 348 KB Output is correct
36 Correct 1 ms 348 KB Output is correct
37 Correct 1 ms 432 KB Output is correct
38 Correct 1 ms 348 KB Output is correct
39 Correct 1 ms 520 KB Output is correct
40 Correct 52 ms 44748 KB Output is correct
41 Correct 71 ms 44692 KB Output is correct
42 Correct 32 ms 46176 KB Output is correct
43 Correct 202 ms 45872 KB Output is correct
44 Correct 2 ms 344 KB Output is correct
45 Correct 1 ms 344 KB Output is correct
46 Correct 2 ms 348 KB Output is correct
47 Correct 2 ms 600 KB Output is correct
48 Correct 2 ms 348 KB Output is correct
49 Correct 1 ms 348 KB Output is correct
50 Correct 1 ms 348 KB Output is correct
51 Correct 1 ms 348 KB Output is correct
52 Correct 1 ms 436 KB Output is correct
53 Correct 15 ms 1872 KB Output is correct
54 Correct 16 ms 1788 KB Output is correct
55 Correct 19 ms 1824 KB Output is correct
56 Correct 15 ms 1788 KB Output is correct
57 Correct 27 ms 1788 KB Output is correct
58 Correct 190 ms 44684 KB Output is correct
59 Correct 2 ms 348 KB Output is correct
60 Correct 1 ms 436 KB Output is correct
61 Correct 2 ms 600 KB Output is correct
62 Correct 2 ms 612 KB Output is correct
63 Correct 1 ms 348 KB Output is correct
64 Correct 1 ms 348 KB Output is correct
65 Correct 1 ms 348 KB Output is correct
66 Correct 1 ms 348 KB Output is correct
67 Correct 1 ms 348 KB Output is correct
68 Correct 891 ms 44356 KB Output is correct
69 Correct 888 ms 44492 KB Output is correct
70 Correct 8 ms 856 KB Output is correct
71 Correct 7 ms 600 KB Output is correct
72 Correct 7 ms 604 KB Output is correct
73 Correct 8 ms 860 KB Output is correct
74 Correct 7 ms 860 KB Output is correct
75 Correct 4 ms 696 KB Output is correct
76 Correct 52 ms 44592 KB Output is correct
77 Correct 71 ms 45236 KB Output is correct
78 Correct 31 ms 44668 KB Output is correct
79 Correct 190 ms 45308 KB Output is correct
80 Correct 804 ms 44532 KB Output is correct
81 Correct 817 ms 45868 KB Output is correct
82 Correct 860 ms 47708 KB Output is correct
83 Correct 819 ms 45712 KB Output is correct
84 Correct 785 ms 45480 KB Output is correct
85 Correct 878 ms 44668 KB Output is correct
86 Correct 864 ms 46252 KB Output is correct
87 Correct 2 ms 348 KB Output is correct
88 Correct 1 ms 348 KB Output is correct
89 Correct 2 ms 348 KB Output is correct
90 Correct 2 ms 436 KB Output is correct
91 Correct 2 ms 348 KB Output is correct
92 Correct 1 ms 348 KB Output is correct
93 Correct 1 ms 436 KB Output is correct
94 Correct 1 ms 348 KB Output is correct
95 Correct 1 ms 344 KB Output is correct
96 Correct 15 ms 1784 KB Output is correct
97 Correct 16 ms 1784 KB Output is correct
98 Correct 18 ms 1784 KB Output is correct
99 Correct 15 ms 1788 KB Output is correct
100 Correct 24 ms 1788 KB Output is correct
101 Correct 7 ms 856 KB Output is correct
102 Correct 7 ms 604 KB Output is correct
103 Correct 6 ms 604 KB Output is correct
104 Correct 8 ms 860 KB Output is correct
105 Correct 7 ms 860 KB Output is correct
106 Correct 4 ms 604 KB Output is correct
107 Correct 110 ms 6804 KB Output is correct
108 Correct 115 ms 6888 KB Output is correct
109 Correct 117 ms 6792 KB Output is correct
110 Correct 235 ms 6888 KB Output is correct
111 Correct 192 ms 44352 KB Output is correct
112 Correct 2 ms 344 KB Output is correct
113 Correct 1 ms 348 KB Output is correct
114 Correct 2 ms 348 KB Output is correct
115 Correct 2 ms 604 KB Output is correct
116 Correct 2 ms 344 KB Output is correct
117 Correct 1 ms 348 KB Output is correct
118 Correct 1 ms 348 KB Output is correct
119 Correct 1 ms 348 KB Output is correct
120 Correct 1 ms 348 KB Output is correct
121 Correct 859 ms 47628 KB Output is correct
122 Correct 888 ms 45440 KB Output is correct
123 Correct 7 ms 860 KB Output is correct
124 Correct 7 ms 716 KB Output is correct
125 Correct 6 ms 600 KB Output is correct
126 Correct 8 ms 856 KB Output is correct
127 Correct 7 ms 860 KB Output is correct
128 Correct 4 ms 604 KB Output is correct
129 Correct 1719 ms 44844 KB Output is correct
130 Correct 1723 ms 45800 KB Output is correct
131 Correct 50 ms 2276 KB Output is correct
132 Correct 35 ms 1444 KB Output is correct
133 Correct 65 ms 2296 KB Output is correct
134 Correct 67 ms 2308 KB Output is correct
135 Correct 58 ms 2272 KB Output is correct
136 Correct 32 ms 1544 KB Output is correct
137 Correct 52 ms 44452 KB Output is correct
138 Correct 71 ms 45104 KB Output is correct
139 Correct 31 ms 45460 KB Output is correct
140 Correct 185 ms 44992 KB Output is correct
141 Correct 798 ms 45964 KB Output is correct
142 Correct 811 ms 45980 KB Output is correct
143 Correct 825 ms 45260 KB Output is correct
144 Correct 795 ms 45872 KB Output is correct
145 Correct 775 ms 45328 KB Output is correct
146 Correct 865 ms 44616 KB Output is correct
147 Correct 859 ms 45724 KB Output is correct
148 Correct 1551 ms 44968 KB Output is correct
149 Correct 1584 ms 45508 KB Output is correct
150 Correct 1667 ms 44404 KB Output is correct
151 Correct 1596 ms 46108 KB Output is correct
152 Correct 1634 ms 45840 KB Output is correct
153 Correct 1729 ms 45300 KB Output is correct
154 Correct 1725 ms 45108 KB Output is correct
155 Correct 2 ms 428 KB Output is correct
156 Correct 1 ms 348 KB Output is correct
157 Correct 2 ms 584 KB Output is correct
158 Correct 2 ms 436 KB Output is correct
159 Correct 1 ms 344 KB Output is correct
160 Correct 1 ms 348 KB Output is correct
161 Correct 1 ms 348 KB Output is correct
162 Correct 1 ms 348 KB Output is correct
163 Correct 1 ms 348 KB Output is correct
164 Correct 7 ms 860 KB Output is correct
165 Correct 6 ms 604 KB Output is correct
166 Correct 6 ms 600 KB Output is correct
167 Correct 8 ms 856 KB Output is correct
168 Correct 7 ms 860 KB Output is correct
169 Correct 4 ms 600 KB Output is correct
170 Correct 15 ms 1788 KB Output is correct
171 Correct 16 ms 1788 KB Output is correct
172 Correct 19 ms 1788 KB Output is correct
173 Correct 18 ms 1784 KB Output is correct
174 Correct 25 ms 1788 KB Output is correct
175 Correct 109 ms 6888 KB Output is correct
176 Correct 123 ms 6888 KB Output is correct
177 Correct 118 ms 6884 KB Output is correct
178 Correct 234 ms 6812 KB Output is correct
179 Correct 51 ms 2268 KB Output is correct
180 Correct 39 ms 1436 KB Output is correct
181 Correct 66 ms 2540 KB Output is correct
182 Correct 68 ms 2312 KB Output is correct
183 Correct 57 ms 2316 KB Output is correct
184 Correct 34 ms 1548 KB Output is correct
185 Correct 1828 ms 53284 KB Output is correct
186 Correct 1959 ms 53016 KB Output is correct
187 Correct 2423 ms 54048 KB Output is correct
188 Execution timed out 5040 ms 53780 KB Time limit exceeded
189 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 194 ms 45356 KB Output is correct
2 Correct 2 ms 344 KB Output is correct
3 Correct 1 ms 600 KB Output is correct
4 Correct 2 ms 348 KB Output is correct
5 Correct 2 ms 604 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 432 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 520 KB Output is correct
11 Correct 190 ms 44684 KB Output is correct
12 Correct 2 ms 348 KB Output is correct
13 Correct 1 ms 436 KB Output is correct
14 Correct 2 ms 600 KB Output is correct
15 Correct 2 ms 612 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
21 Correct 891 ms 44356 KB Output is correct
22 Correct 888 ms 44492 KB Output is correct
23 Correct 8 ms 856 KB Output is correct
24 Correct 7 ms 600 KB Output is correct
25 Correct 7 ms 604 KB Output is correct
26 Correct 8 ms 860 KB Output is correct
27 Correct 7 ms 860 KB Output is correct
28 Correct 4 ms 696 KB Output is correct
29 Correct 192 ms 44352 KB Output is correct
30 Correct 2 ms 344 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 2 ms 348 KB Output is correct
33 Correct 2 ms 604 KB Output is correct
34 Correct 2 ms 344 KB Output is correct
35 Correct 1 ms 348 KB Output is correct
36 Correct 1 ms 348 KB Output is correct
37 Correct 1 ms 348 KB Output is correct
38 Correct 1 ms 348 KB Output is correct
39 Correct 859 ms 47628 KB Output is correct
40 Correct 888 ms 45440 KB Output is correct
41 Correct 7 ms 860 KB Output is correct
42 Correct 7 ms 716 KB Output is correct
43 Correct 6 ms 600 KB Output is correct
44 Correct 8 ms 856 KB Output is correct
45 Correct 7 ms 860 KB Output is correct
46 Correct 4 ms 604 KB Output is correct
47 Correct 1719 ms 44844 KB Output is correct
48 Correct 1723 ms 45800 KB Output is correct
49 Correct 50 ms 2276 KB Output is correct
50 Correct 35 ms 1444 KB Output is correct
51 Correct 65 ms 2296 KB Output is correct
52 Correct 67 ms 2308 KB Output is correct
53 Correct 58 ms 2272 KB Output is correct
54 Correct 32 ms 1544 KB Output is correct
55 Correct 185 ms 46060 KB Output is correct
56 Correct 2 ms 348 KB Output is correct
57 Correct 1 ms 348 KB Output is correct
58 Correct 2 ms 344 KB Output is correct
59 Correct 2 ms 432 KB Output is correct
60 Correct 1 ms 348 KB Output is correct
61 Correct 1 ms 348 KB Output is correct
62 Correct 1 ms 348 KB Output is correct
63 Correct 1 ms 348 KB Output is correct
64 Correct 1 ms 348 KB Output is correct
65 Correct 863 ms 45176 KB Output is correct
66 Correct 888 ms 46036 KB Output is correct
67 Correct 7 ms 856 KB Output is correct
68 Correct 7 ms 604 KB Output is correct
69 Correct 6 ms 604 KB Output is correct
70 Correct 8 ms 860 KB Output is correct
71 Correct 7 ms 860 KB Output is correct
72 Correct 4 ms 604 KB Output is correct
73 Correct 1769 ms 44684 KB Output is correct
74 Correct 1726 ms 44892 KB Output is correct
75 Correct 50 ms 2272 KB Output is correct
76 Correct 35 ms 1436 KB Output is correct
77 Correct 65 ms 2544 KB Output is correct
78 Correct 71 ms 2308 KB Output is correct
79 Correct 60 ms 2656 KB Output is correct
80 Correct 33 ms 1548 KB Output is correct
81 Correct 1771 ms 16808 KB Output is correct
82 Correct 1368 ms 14160 KB Output is correct
83 Correct 1609 ms 16440 KB Output is correct
84 Correct 2143 ms 26692 KB Output is correct
85 Correct 655 ms 5072 KB Output is correct
86 Correct 661 ms 5380 KB Output is correct
87 Correct 684 ms 5072 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 50 ms 44644 KB Output is correct
2 Correct 70 ms 45424 KB Output is correct
3 Correct 32 ms 45448 KB Output is correct
4 Correct 186 ms 45924 KB Output is correct
5 Correct 779 ms 45784 KB Output is correct
6 Correct 777 ms 45164 KB Output is correct
7 Correct 856 ms 45256 KB Output is correct
8 Correct 775 ms 45228 KB Output is correct
9 Correct 781 ms 44696 KB Output is correct
10 Correct 870 ms 44472 KB Output is correct
11 Correct 860 ms 46224 KB Output is correct
12 Correct 50 ms 45748 KB Output is correct
13 Correct 69 ms 45232 KB Output is correct
14 Correct 33 ms 45236 KB Output is correct
15 Correct 188 ms 44240 KB Output is correct
16 Correct 778 ms 46016 KB Output is correct
17 Correct 794 ms 46124 KB Output is correct
18 Correct 833 ms 45028 KB Output is correct
19 Correct 783 ms 46088 KB Output is correct
20 Correct 809 ms 45004 KB Output is correct
21 Correct 886 ms 45200 KB Output is correct
22 Correct 864 ms 47736 KB Output is correct
23 Correct 1538 ms 45212 KB Output is correct
24 Correct 1591 ms 44584 KB Output is correct
25 Correct 1662 ms 44288 KB Output is correct
26 Correct 1575 ms 47760 KB Output is correct
27 Correct 1588 ms 44944 KB Output is correct
28 Correct 1756 ms 44672 KB Output is correct
29 Correct 1788 ms 44544 KB Output is correct
30 Correct 194 ms 45356 KB Output is correct
31 Correct 2 ms 344 KB Output is correct
32 Correct 1 ms 600 KB Output is correct
33 Correct 2 ms 348 KB Output is correct
34 Correct 2 ms 604 KB Output is correct
35 Correct 2 ms 348 KB Output is correct
36 Correct 1 ms 348 KB Output is correct
37 Correct 1 ms 432 KB Output is correct
38 Correct 1 ms 348 KB Output is correct
39 Correct 1 ms 520 KB Output is correct
40 Correct 52 ms 44748 KB Output is correct
41 Correct 71 ms 44692 KB Output is correct
42 Correct 32 ms 46176 KB Output is correct
43 Correct 202 ms 45872 KB Output is correct
44 Correct 2 ms 344 KB Output is correct
45 Correct 1 ms 344 KB Output is correct
46 Correct 2 ms 348 KB Output is correct
47 Correct 2 ms 600 KB Output is correct
48 Correct 2 ms 348 KB Output is correct
49 Correct 1 ms 348 KB Output is correct
50 Correct 1 ms 348 KB Output is correct
51 Correct 1 ms 348 KB Output is correct
52 Correct 1 ms 436 KB Output is correct
53 Correct 15 ms 1872 KB Output is correct
54 Correct 16 ms 1788 KB Output is correct
55 Correct 19 ms 1824 KB Output is correct
56 Correct 15 ms 1788 KB Output is correct
57 Correct 27 ms 1788 KB Output is correct
58 Correct 190 ms 44684 KB Output is correct
59 Correct 2 ms 348 KB Output is correct
60 Correct 1 ms 436 KB Output is correct
61 Correct 2 ms 600 KB Output is correct
62 Correct 2 ms 612 KB Output is correct
63 Correct 1 ms 348 KB Output is correct
64 Correct 1 ms 348 KB Output is correct
65 Correct 1 ms 348 KB Output is correct
66 Correct 1 ms 348 KB Output is correct
67 Correct 1 ms 348 KB Output is correct
68 Correct 891 ms 44356 KB Output is correct
69 Correct 888 ms 44492 KB Output is correct
70 Correct 8 ms 856 KB Output is correct
71 Correct 7 ms 600 KB Output is correct
72 Correct 7 ms 604 KB Output is correct
73 Correct 8 ms 860 KB Output is correct
74 Correct 7 ms 860 KB Output is correct
75 Correct 4 ms 696 KB Output is correct
76 Correct 52 ms 44592 KB Output is correct
77 Correct 71 ms 45236 KB Output is correct
78 Correct 31 ms 44668 KB Output is correct
79 Correct 190 ms 45308 KB Output is correct
80 Correct 804 ms 44532 KB Output is correct
81 Correct 817 ms 45868 KB Output is correct
82 Correct 860 ms 47708 KB Output is correct
83 Correct 819 ms 45712 KB Output is correct
84 Correct 785 ms 45480 KB Output is correct
85 Correct 878 ms 44668 KB Output is correct
86 Correct 864 ms 46252 KB Output is correct
87 Correct 2 ms 348 KB Output is correct
88 Correct 1 ms 348 KB Output is correct
89 Correct 2 ms 348 KB Output is correct
90 Correct 2 ms 436 KB Output is correct
91 Correct 2 ms 348 KB Output is correct
92 Correct 1 ms 348 KB Output is correct
93 Correct 1 ms 436 KB Output is correct
94 Correct 1 ms 348 KB Output is correct
95 Correct 1 ms 344 KB Output is correct
96 Correct 15 ms 1784 KB Output is correct
97 Correct 16 ms 1784 KB Output is correct
98 Correct 18 ms 1784 KB Output is correct
99 Correct 15 ms 1788 KB Output is correct
100 Correct 24 ms 1788 KB Output is correct
101 Correct 7 ms 856 KB Output is correct
102 Correct 7 ms 604 KB Output is correct
103 Correct 6 ms 604 KB Output is correct
104 Correct 8 ms 860 KB Output is correct
105 Correct 7 ms 860 KB Output is correct
106 Correct 4 ms 604 KB Output is correct
107 Correct 110 ms 6804 KB Output is correct
108 Correct 115 ms 6888 KB Output is correct
109 Correct 117 ms 6792 KB Output is correct
110 Correct 235 ms 6888 KB Output is correct
111 Correct 192 ms 44352 KB Output is correct
112 Correct 2 ms 344 KB Output is correct
113 Correct 1 ms 348 KB Output is correct
114 Correct 2 ms 348 KB Output is correct
115 Correct 2 ms 604 KB Output is correct
116 Correct 2 ms 344 KB Output is correct
117 Correct 1 ms 348 KB Output is correct
118 Correct 1 ms 348 KB Output is correct
119 Correct 1 ms 348 KB Output is correct
120 Correct 1 ms 348 KB Output is correct
121 Correct 859 ms 47628 KB Output is correct
122 Correct 888 ms 45440 KB Output is correct
123 Correct 7 ms 860 KB Output is correct
124 Correct 7 ms 716 KB Output is correct
125 Correct 6 ms 600 KB Output is correct
126 Correct 8 ms 856 KB Output is correct
127 Correct 7 ms 860 KB Output is correct
128 Correct 4 ms 604 KB Output is correct
129 Correct 1719 ms 44844 KB Output is correct
130 Correct 1723 ms 45800 KB Output is correct
131 Correct 50 ms 2276 KB Output is correct
132 Correct 35 ms 1444 KB Output is correct
133 Correct 65 ms 2296 KB Output is correct
134 Correct 67 ms 2308 KB Output is correct
135 Correct 58 ms 2272 KB Output is correct
136 Correct 32 ms 1544 KB Output is correct
137 Correct 52 ms 44452 KB Output is correct
138 Correct 71 ms 45104 KB Output is correct
139 Correct 31 ms 45460 KB Output is correct
140 Correct 185 ms 44992 KB Output is correct
141 Correct 798 ms 45964 KB Output is correct
142 Correct 811 ms 45980 KB Output is correct
143 Correct 825 ms 45260 KB Output is correct
144 Correct 795 ms 45872 KB Output is correct
145 Correct 775 ms 45328 KB Output is correct
146 Correct 865 ms 44616 KB Output is correct
147 Correct 859 ms 45724 KB Output is correct
148 Correct 1551 ms 44968 KB Output is correct
149 Correct 1584 ms 45508 KB Output is correct
150 Correct 1667 ms 44404 KB Output is correct
151 Correct 1596 ms 46108 KB Output is correct
152 Correct 1634 ms 45840 KB Output is correct
153 Correct 1729 ms 45300 KB Output is correct
154 Correct 1725 ms 45108 KB Output is correct
155 Correct 2 ms 428 KB Output is correct
156 Correct 1 ms 348 KB Output is correct
157 Correct 2 ms 584 KB Output is correct
158 Correct 2 ms 436 KB Output is correct
159 Correct 1 ms 344 KB Output is correct
160 Correct 1 ms 348 KB Output is correct
161 Correct 1 ms 348 KB Output is correct
162 Correct 1 ms 348 KB Output is correct
163 Correct 1 ms 348 KB Output is correct
164 Correct 7 ms 860 KB Output is correct
165 Correct 6 ms 604 KB Output is correct
166 Correct 6 ms 600 KB Output is correct
167 Correct 8 ms 856 KB Output is correct
168 Correct 7 ms 860 KB Output is correct
169 Correct 4 ms 600 KB Output is correct
170 Correct 15 ms 1788 KB Output is correct
171 Correct 16 ms 1788 KB Output is correct
172 Correct 19 ms 1788 KB Output is correct
173 Correct 18 ms 1784 KB Output is correct
174 Correct 25 ms 1788 KB Output is correct
175 Correct 109 ms 6888 KB Output is correct
176 Correct 123 ms 6888 KB Output is correct
177 Correct 118 ms 6884 KB Output is correct
178 Correct 234 ms 6812 KB Output is correct
179 Correct 51 ms 2268 KB Output is correct
180 Correct 39 ms 1436 KB Output is correct
181 Correct 66 ms 2540 KB Output is correct
182 Correct 68 ms 2312 KB Output is correct
183 Correct 57 ms 2316 KB Output is correct
184 Correct 34 ms 1548 KB Output is correct
185 Correct 1828 ms 53284 KB Output is correct
186 Correct 1959 ms 53016 KB Output is correct
187 Correct 2423 ms 54048 KB Output is correct
188 Execution timed out 5040 ms 53780 KB Time limit exceeded
189 Halted 0 ms 0 KB -