107742024-04-11 18:41:18mraronMetróutasokcpp17Elfogadva 100/10057ms7120 KiB
#include <iostream>
#include <vector>
#include <numeric>

using namespace std;
using ll = long long;

int N;
vector<int> a;

ll solvemin() {
    auto chk = [&](ll lim) -> bool {
        ll mn = 0ll, mx = 0ll;
        for (int i=1; i<=N; ++i) {
            ll pmn = mn;
            if (mn >= a[i])
                mn -= a[i];
            else if (mx < a[i])
                mn = a[i]-mx;
            else
                mn = (mn+a[i]) % 2;

            if (mx+a[i] <= lim) mx += a[i];
            else {
                ll rem = lim-pmn;
                if ((pmn+a[i] <= lim) || (a[i] <= mx+lim))
                    mx = lim - (rem+a[i])%2;
                else return false;
            }
        }
        return (mn==0);
    };

    ll lo = 0, hi = accumulate(a.begin(), a.end(), 0ll);
    while (lo+1 < hi) {
        ll mid = (lo+hi)/2;
        if (chk(mid))
            hi = mid;
        else
            lo = mid;
    }
    return hi;
}
ll solvemax() {
    vector<ll> pref(N+1, 0ll);
    for (int i=1; i<=N; ++i)
        pref[i] = pref[i-1] + (ll)a[i];
    ll ans = 0ll, tot = 0ll;
    for (int i=N; i>0; --i) {
        tot += a[i];
        ans = max(ans, min(pref[i-1], tot));
    }
    return ans;
}
int main() {
    ios::sync_with_stdio(false);
    cin >> N;
    a.assign(N+1, 0);
    for (int i=1; i<=N; ++i)
        cin >> a[i];
    
    cout << solvemin() << endl;
    cout << solvemax() << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2040 KiB
2Elfogadva57ms4436 KiB
subtask212/12
3Elfogadva3ms2268 KiB
4Elfogadva3ms2356 KiB
5Elfogadva3ms2592 KiB
6Elfogadva3ms2816 KiB
7Elfogadva3ms2900 KiB
8Elfogadva3ms2908 KiB
9Elfogadva2ms2996 KiB
10Elfogadva2ms2992 KiB
11Elfogadva3ms3220 KiB
12Elfogadva3ms3304 KiB
13Elfogadva2ms3208 KiB
14Elfogadva3ms3340 KiB
15Elfogadva3ms3564 KiB
16Elfogadva3ms3772 KiB
subtask312/12
17Elfogadva3ms2268 KiB
18Elfogadva3ms2356 KiB
19Elfogadva3ms2592 KiB
20Elfogadva3ms2816 KiB
21Elfogadva3ms2900 KiB
22Elfogadva3ms2908 KiB
23Elfogadva2ms2996 KiB
24Elfogadva2ms2992 KiB
25Elfogadva3ms3220 KiB
26Elfogadva3ms3304 KiB
27Elfogadva3ms3988 KiB
28Elfogadva3ms3840 KiB
29Elfogadva3ms3844 KiB
30Elfogadva3ms4072 KiB
31Elfogadva3ms4176 KiB
32Elfogadva2ms4272 KiB
33Elfogadva3ms4276 KiB
34Elfogadva3ms4360 KiB
35Elfogadva3ms4356 KiB
36Elfogadva3ms4360 KiB
37Elfogadva2ms3208 KiB
38Elfogadva3ms3340 KiB
39Elfogadva3ms4464 KiB
40Elfogadva3ms4480 KiB
41Elfogadva3ms4580 KiB
42Elfogadva3ms4752 KiB
43Elfogadva3ms3564 KiB
44Elfogadva3ms3772 KiB
45Elfogadva3ms4608 KiB
46Elfogadva3ms4528 KiB
47Elfogadva3ms4616 KiB
48Elfogadva3ms4648 KiB
49Elfogadva3ms4500 KiB
subtask416/16
50Elfogadva3ms2268 KiB
51Elfogadva3ms2356 KiB
52Elfogadva3ms2592 KiB
53Elfogadva3ms2816 KiB
54Elfogadva3ms2900 KiB
55Elfogadva3ms2908 KiB
56Elfogadva2ms2996 KiB
57Elfogadva2ms2992 KiB
58Elfogadva3ms3220 KiB
59Elfogadva3ms3304 KiB
60Elfogadva3ms3988 KiB
61Elfogadva3ms3840 KiB
62Elfogadva3ms3844 KiB
63Elfogadva3ms4072 KiB
64Elfogadva3ms4176 KiB
65Elfogadva2ms4272 KiB
66Elfogadva3ms4276 KiB
67Elfogadva3ms4360 KiB
68Elfogadva3ms4356 KiB
69Elfogadva3ms4360 KiB
70Elfogadva3ms4404 KiB
71Elfogadva3ms4404 KiB
72Elfogadva3ms4500 KiB
73Elfogadva3ms4400 KiB
74Elfogadva3ms4400 KiB
75Elfogadva2ms4400 KiB
76Elfogadva3ms4400 KiB
77Elfogadva3ms4680 KiB
78Elfogadva3ms4772 KiB
79Elfogadva3ms4856 KiB
80Elfogadva2ms3208 KiB
81Elfogadva3ms3340 KiB
82Elfogadva3ms4464 KiB
83Elfogadva3ms4480 KiB
84Elfogadva3ms4580 KiB
85Elfogadva3ms4752 KiB
86Elfogadva3ms3564 KiB
87Elfogadva3ms3772 KiB
88Elfogadva3ms4608 KiB
89Elfogadva3ms4528 KiB
90Elfogadva3ms4616 KiB
91Elfogadva3ms4648 KiB
92Elfogadva3ms4500 KiB
subtask560/60
93Elfogadva3ms2268 KiB
94Elfogadva57ms6864 KiB
95Elfogadva3ms2356 KiB
96Elfogadva3ms2592 KiB
97Elfogadva3ms2816 KiB
98Elfogadva3ms2900 KiB
99Elfogadva3ms2908 KiB
100Elfogadva2ms2996 KiB
101Elfogadva2ms2992 KiB
102Elfogadva3ms3220 KiB
103Elfogadva3ms3304 KiB
104Elfogadva3ms3988 KiB
105Elfogadva3ms3840 KiB
106Elfogadva3ms3844 KiB
107Elfogadva3ms4072 KiB
108Elfogadva3ms4176 KiB
109Elfogadva2ms4272 KiB
110Elfogadva3ms4276 KiB
111Elfogadva3ms4360 KiB
112Elfogadva3ms4356 KiB
113Elfogadva3ms4360 KiB
114Elfogadva3ms4404 KiB
115Elfogadva3ms4404 KiB
116Elfogadva3ms4500 KiB
117Elfogadva3ms4400 KiB
118Elfogadva3ms4400 KiB
119Elfogadva2ms4400 KiB
120Elfogadva3ms4400 KiB
121Elfogadva3ms4680 KiB
122Elfogadva3ms4772 KiB
123Elfogadva3ms4856 KiB
124Elfogadva34ms6864 KiB
125Elfogadva32ms6864 KiB
126Elfogadva37ms6920 KiB
127Elfogadva43ms6860 KiB
128Elfogadva35ms6940 KiB
129Elfogadva57ms6972 KiB
130Elfogadva46ms6860 KiB
131Elfogadva41ms6928 KiB
132Elfogadva57ms6988 KiB
133Elfogadva2ms3208 KiB
134Elfogadva3ms3340 KiB
135Elfogadva3ms4464 KiB
136Elfogadva3ms4480 KiB
137Elfogadva3ms4580 KiB
138Elfogadva3ms4752 KiB
139Elfogadva3ms3564 KiB
140Elfogadva3ms3772 KiB
141Elfogadva3ms4608 KiB
142Elfogadva3ms4528 KiB
143Elfogadva3ms4616 KiB
144Elfogadva20ms6728 KiB
145Elfogadva20ms6728 KiB
146Elfogadva24ms7120 KiB
147Elfogadva16ms6084 KiB
148Elfogadva23ms6728 KiB
149Elfogadva21ms6728 KiB
150Elfogadva3ms4648 KiB
151Elfogadva3ms4500 KiB
152Elfogadva20ms6732 KiB