109442024-04-20 18:02:38k_balintMetróutasokcpp17Hibás válasz 0/10030ms7484 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int c=2e5+5;

int n;
int arr[c];
ll suf[c];

bool check(ll k){
    ll cur=0;
    for(int i=1;i<=n;i++){
        if(arr[i]-cur>k) return 0;
        if(cur+arr[i]<=k) cur+=arr[i];
        else if( ((cur+arr[i])&1) == (k&1)) cur=k;
        else cur=k-1;
    }
    return 1;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>arr[i];
    }

    ll l=0,r=1e15;
    while(l<r-1){
        ll mid=l+r>>1;
        if(check(mid)) r=mid;
        else l=mid;
    }
    cout << r << endl;

    for(int i=n;i>0;i--) suf[i]=suf[i+1]+arr[i];

    ll sum=0;
    ll maxi=0;
    for(int i=1;i<=n;i++){
        if(suf[i+1]>=sum+arr[i]){
            sum+=sum+arr[i];
            maxi=sum;
        }
        else{
            maxi=max(suf[i+1],maxi);
            break;
        }
    }
    cout << maxi << endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2080 KiB
2Hibás válasz28ms4660 KiB
subtask20/12
3Elfogadva3ms2348 KiB
4Elfogadva3ms2560 KiB
5Hibás válasz3ms2768 KiB
6Elfogadva3ms3124 KiB
7Elfogadva3ms3320 KiB
8Elfogadva3ms3404 KiB
9Hibás válasz3ms3324 KiB
10Részben helyes3ms3364 KiB
11Részben helyes3ms3452 KiB
12Részben helyes3ms3664 KiB
13Részben helyes3ms3748 KiB
14Részben helyes3ms3672 KiB
15Elfogadva3ms3788 KiB
16Részben helyes3ms4004 KiB
subtask30/12
17Elfogadva3ms2348 KiB
18Elfogadva3ms2560 KiB
19Hibás válasz3ms2768 KiB
20Elfogadva3ms3124 KiB
21Elfogadva3ms3320 KiB
22Elfogadva3ms3404 KiB
23Hibás válasz3ms3324 KiB
24Részben helyes3ms3364 KiB
25Részben helyes3ms3452 KiB
26Részben helyes3ms3664 KiB
27Részben helyes3ms4088 KiB
28Hibás válasz3ms4088 KiB
29Részben helyes3ms4180 KiB
30Részben helyes3ms4088 KiB
31Részben helyes3ms4084 KiB
32Hibás válasz3ms4084 KiB
33Hibás válasz3ms4092 KiB
34Részben helyes3ms4236 KiB
35Részben helyes3ms4088 KiB
36Részben helyes3ms4216 KiB
37Részben helyes3ms3748 KiB
38Részben helyes3ms3672 KiB
39Hibás válasz3ms4428 KiB
40Részben helyes3ms4516 KiB
41Hibás válasz3ms4588 KiB
42Részben helyes3ms4520 KiB
43Elfogadva3ms3788 KiB
44Részben helyes3ms4004 KiB
45Részben helyes3ms4608 KiB
46Részben helyes3ms4604 KiB
47Hibás válasz3ms4612 KiB
48Részben helyes3ms4836 KiB
49Elfogadva3ms4828 KiB
subtask40/16
50Elfogadva3ms2348 KiB
51Elfogadva3ms2560 KiB
52Hibás válasz3ms2768 KiB
53Elfogadva3ms3124 KiB
54Elfogadva3ms3320 KiB
55Elfogadva3ms3404 KiB
56Hibás válasz3ms3324 KiB
57Részben helyes3ms3364 KiB
58Részben helyes3ms3452 KiB
59Részben helyes3ms3664 KiB
60Részben helyes3ms4088 KiB
61Hibás válasz3ms4088 KiB
62Részben helyes3ms4180 KiB
63Részben helyes3ms4088 KiB
64Részben helyes3ms4084 KiB
65Hibás válasz3ms4084 KiB
66Hibás válasz3ms4092 KiB
67Részben helyes3ms4236 KiB
68Részben helyes3ms4088 KiB
69Részben helyes3ms4216 KiB
70Részben helyes3ms4744 KiB
71Hibás válasz3ms4972 KiB
72Részben helyes3ms4860 KiB
73Hibás válasz3ms4744 KiB
74Hibás válasz3ms4820 KiB
75Részben helyes3ms4824 KiB
76Részben helyes3ms4744 KiB
77Részben helyes3ms4832 KiB
78Hibás válasz3ms4952 KiB
79Részben helyes3ms5036 KiB
80Részben helyes3ms3748 KiB
81Részben helyes3ms3672 KiB
82Hibás válasz3ms4428 KiB
83Részben helyes3ms4516 KiB
84Hibás válasz3ms4588 KiB
85Részben helyes3ms4520 KiB
86Elfogadva3ms3788 KiB
87Részben helyes3ms4004 KiB
88Részben helyes3ms4608 KiB
89Részben helyes3ms4604 KiB
90Hibás válasz3ms4612 KiB
91Részben helyes3ms4836 KiB
92Elfogadva3ms4828 KiB
subtask50/60
93Elfogadva3ms2348 KiB
94Hibás válasz28ms7352 KiB
95Elfogadva3ms2560 KiB
96Hibás válasz3ms2768 KiB
97Elfogadva3ms3124 KiB
98Elfogadva3ms3320 KiB
99Elfogadva3ms3404 KiB
100Hibás válasz3ms3324 KiB
101Részben helyes3ms3364 KiB
102Részben helyes3ms3452 KiB
103Részben helyes3ms3664 KiB
104Részben helyes3ms4088 KiB
105Hibás válasz3ms4088 KiB
106Részben helyes3ms4180 KiB
107Részben helyes3ms4088 KiB
108Részben helyes3ms4084 KiB
109Hibás válasz3ms4084 KiB
110Hibás válasz3ms4092 KiB
111Részben helyes3ms4236 KiB
112Részben helyes3ms4088 KiB
113Részben helyes3ms4216 KiB
114Részben helyes3ms4744 KiB
115Hibás válasz3ms4972 KiB
116Részben helyes3ms4860 KiB
117Hibás válasz3ms4744 KiB
118Hibás válasz3ms4820 KiB
119Részben helyes3ms4824 KiB
120Részben helyes3ms4744 KiB
121Részben helyes3ms4832 KiB
122Hibás válasz3ms4952 KiB
123Részben helyes3ms5036 KiB
124Részben helyes28ms7280 KiB
125Részben helyes29ms7280 KiB
126Részben helyes29ms7336 KiB
127Hibás válasz28ms7332 KiB
128Részben helyes30ms7280 KiB
129Hibás válasz29ms7280 KiB
130Hibás válasz29ms7280 KiB
131Részben helyes28ms7428 KiB
132Hibás válasz30ms7484 KiB
133Részben helyes3ms3748 KiB
134Részben helyes3ms3672 KiB
135Hibás válasz3ms4428 KiB
136Részben helyes3ms4516 KiB
137Hibás válasz3ms4588 KiB
138Részben helyes3ms4520 KiB
139Elfogadva3ms3788 KiB
140Részben helyes3ms4004 KiB
141Részben helyes3ms4608 KiB
142Részben helyes3ms4604 KiB
143Hibás válasz3ms4612 KiB
144Részben helyes23ms7192 KiB
145Részben helyes21ms6968 KiB
146Hibás válasz25ms7352 KiB
147Részben helyes16ms6368 KiB
148Hibás válasz23ms7208 KiB
149Részben helyes23ms7196 KiB
150Részben helyes3ms4836 KiB
151Elfogadva3ms4828 KiB
152Részben helyes21ms7084 KiB