108042024-04-14 13:14:20AblablablaMetróutasokcpp17Elfogadva 100/10082ms6728 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n;
vector<ll> szamok;
ll ossz = 0;

bool check(ll hatar){
    ll mn = 0;
    ll mx = 0;

    for(int i = 0; i < n; i++){
        ll mas = mn;

        if(mn >= szamok[i]){
            mn -= szamok[i];
        } else if(mx < szamok[i]){
            mn = szamok[i] - mx;
        } else{
            mn = (mn + szamok[i]) % 2;
        }

        if(mx + szamok[i] <= hatar){
            mx += szamok[i];
        } else{
            ll marad = hatar - mas;
            if((mas + szamok[i] <= hatar) || (szamok[i] <= mx + hatar)){
                mx = hatar - (marad + szamok[i]) % 2;
            } else{
                return false;
            }
        }
    }

    return (mn == 0);
}

void minKer(){
    ll l = max(szamok[0], szamok[n - 1]), r = ossz;
    ll ans = 0;
    while(l <= r){
        ll k = (l + r) / 2;

        if(check(k)){
            ans = k;
            r = k - 1;
        } else{
            l = k + 1;
        }
    }

    cout << ans << "\n";
}

void maxKer(){
    ll fent = 0;
    ll fel = 0;
    ll maxi = 0;
    for(int i = 0; i < n; i++){
        ll felszall = min(szamok[i], ossz / 2 - fel);
        ll leszall = szamok[i] - felszall;

        fent += felszall - leszall;
        fel += felszall;
        maxi = max(maxi, fent);
    }

    cout << maxi << "\n";
}

int main()
{
    cin >> n;

    szamok.assign(n, 0);
    for(ll &x : szamok){
        cin >> x;
        ossz += x;
    }

    minKer();
    maxKer();
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1876 KiB
2Elfogadva82ms3468 KiB
subtask212/12
3Elfogadva3ms2204 KiB
4Elfogadva3ms2276 KiB
5Elfogadva3ms2492 KiB
6Elfogadva3ms2840 KiB
7Elfogadva3ms2788 KiB
8Elfogadva3ms2792 KiB
9Elfogadva3ms2992 KiB
10Elfogadva3ms3156 KiB
11Elfogadva3ms3244 KiB
12Elfogadva2ms3184 KiB
13Elfogadva2ms3072 KiB
14Elfogadva3ms3072 KiB
15Elfogadva3ms3320 KiB
16Elfogadva3ms3284 KiB
subtask312/12
17Elfogadva3ms2204 KiB
18Elfogadva3ms2276 KiB
19Elfogadva3ms2492 KiB
20Elfogadva3ms2840 KiB
21Elfogadva3ms2788 KiB
22Elfogadva3ms2792 KiB
23Elfogadva3ms2992 KiB
24Elfogadva3ms3156 KiB
25Elfogadva3ms3244 KiB
26Elfogadva2ms3184 KiB
27Elfogadva3ms3284 KiB
28Elfogadva3ms3420 KiB
29Elfogadva3ms3544 KiB
30Elfogadva3ms3640 KiB
31Elfogadva3ms3852 KiB
32Elfogadva3ms4240 KiB
33Elfogadva3ms4156 KiB
34Elfogadva3ms4284 KiB
35Elfogadva3ms4408 KiB
36Elfogadva3ms4560 KiB
37Elfogadva2ms3072 KiB
38Elfogadva3ms3072 KiB
39Elfogadva3ms4560 KiB
40Elfogadva3ms4688 KiB
41Elfogadva3ms4572 KiB
42Elfogadva3ms4692 KiB
43Elfogadva3ms3320 KiB
44Elfogadva3ms3284 KiB
45Elfogadva3ms4664 KiB
46Elfogadva3ms4664 KiB
47Elfogadva3ms4664 KiB
48Elfogadva2ms4664 KiB
49Elfogadva3ms4784 KiB
subtask416/16
50Elfogadva3ms2204 KiB
51Elfogadva3ms2276 KiB
52Elfogadva3ms2492 KiB
53Elfogadva3ms2840 KiB
54Elfogadva3ms2788 KiB
55Elfogadva3ms2792 KiB
56Elfogadva3ms2992 KiB
57Elfogadva3ms3156 KiB
58Elfogadva3ms3244 KiB
59Elfogadva2ms3184 KiB
60Elfogadva3ms3284 KiB
61Elfogadva3ms3420 KiB
62Elfogadva3ms3544 KiB
63Elfogadva3ms3640 KiB
64Elfogadva3ms3852 KiB
65Elfogadva3ms4240 KiB
66Elfogadva3ms4156 KiB
67Elfogadva3ms4284 KiB
68Elfogadva3ms4408 KiB
69Elfogadva3ms4560 KiB
70Elfogadva3ms4668 KiB
71Elfogadva3ms4668 KiB
72Elfogadva3ms4800 KiB
73Elfogadva3ms4812 KiB
74Elfogadva3ms4812 KiB
75Elfogadva3ms4812 KiB
76Elfogadva3ms4808 KiB
77Elfogadva3ms4804 KiB
78Elfogadva3ms4804 KiB
79Elfogadva3ms4804 KiB
80Elfogadva2ms3072 KiB
81Elfogadva3ms3072 KiB
82Elfogadva3ms4560 KiB
83Elfogadva3ms4688 KiB
84Elfogadva3ms4572 KiB
85Elfogadva3ms4692 KiB
86Elfogadva3ms3320 KiB
87Elfogadva3ms3284 KiB
88Elfogadva3ms4664 KiB
89Elfogadva3ms4664 KiB
90Elfogadva3ms4664 KiB
91Elfogadva2ms4664 KiB
92Elfogadva3ms4784 KiB
subtask560/60
93Elfogadva3ms2204 KiB
94Elfogadva82ms6160 KiB
95Elfogadva3ms2276 KiB
96Elfogadva3ms2492 KiB
97Elfogadva3ms2840 KiB
98Elfogadva3ms2788 KiB
99Elfogadva3ms2792 KiB
100Elfogadva3ms2992 KiB
101Elfogadva3ms3156 KiB
102Elfogadva3ms3244 KiB
103Elfogadva2ms3184 KiB
104Elfogadva3ms3284 KiB
105Elfogadva3ms3420 KiB
106Elfogadva3ms3544 KiB
107Elfogadva3ms3640 KiB
108Elfogadva3ms3852 KiB
109Elfogadva3ms4240 KiB
110Elfogadva3ms4156 KiB
111Elfogadva3ms4284 KiB
112Elfogadva3ms4408 KiB
113Elfogadva3ms4560 KiB
114Elfogadva3ms4668 KiB
115Elfogadva3ms4668 KiB
116Elfogadva3ms4800 KiB
117Elfogadva3ms4812 KiB
118Elfogadva3ms4812 KiB
119Elfogadva3ms4812 KiB
120Elfogadva3ms4808 KiB
121Elfogadva3ms4804 KiB
122Elfogadva3ms4804 KiB
123Elfogadva3ms4804 KiB
124Elfogadva65ms6288 KiB
125Elfogadva65ms6384 KiB
126Elfogadva68ms6468 KiB
127Elfogadva64ms6476 KiB
128Elfogadva67ms6460 KiB
129Elfogadva79ms6380 KiB
130Elfogadva68ms6376 KiB
131Elfogadva64ms6376 KiB
132Elfogadva81ms6528 KiB
133Elfogadva2ms3072 KiB
134Elfogadva3ms3072 KiB
135Elfogadva3ms4560 KiB
136Elfogadva3ms4688 KiB
137Elfogadva3ms4572 KiB
138Elfogadva3ms4692 KiB
139Elfogadva3ms3320 KiB
140Elfogadva3ms3284 KiB
141Elfogadva3ms4664 KiB
142Elfogadva3ms4664 KiB
143Elfogadva3ms4664 KiB
144Elfogadva35ms6488 KiB
145Elfogadva32ms6620 KiB
146Elfogadva37ms6728 KiB
147Elfogadva24ms5988 KiB
148Elfogadva35ms6452 KiB
149Elfogadva32ms6452 KiB
150Elfogadva2ms4664 KiB
151Elfogadva3ms4784 KiB
152Elfogadva32ms6600 KiB