File tree 1 file changed +45
-0
lines changed
1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include < bits/stdc++.h>
2
+ using namespace std ;
3
+ unsigned long long int findMaxSubarraySum (unsigned long long int arr[],unsigned long long int n,unsigned long long int sum)
4
+ {
5
+ unsigned long long int curr_sum = arr[0 ], max_sum = 0 , start = 0 ;
6
+ for (unsigned long long int i = 1 ; i < n; i++) {
7
+ if (curr_sum <= sum)
8
+ max_sum = max (max_sum, curr_sum);
9
+ while (curr_sum + arr[i] > sum && start < i) {
10
+ curr_sum -= arr[start];
11
+ start++;
12
+ }
13
+ curr_sum += arr[i];
14
+ }
15
+ if (curr_sum <= sum)
16
+ max_sum = max (max_sum, curr_sum);
17
+ return max_sum;
18
+ }
19
+ int main ()
20
+ {
21
+ unsigned long long int n;
22
+ cin>>n;
23
+ unsigned long long int x;
24
+ cin>>x;
25
+ long long int y;
26
+ cin>>y;
27
+ unsigned long long int max=0 ;
28
+ unsigned long long int sum;
29
+ unsigned long long int array[n];
30
+ unsigned long long int arr[n];
31
+ for (unsigned long long int i=0 ; i<n; i++){
32
+ cin>> array[i];
33
+ }
34
+ while (y--){
35
+ max = max+ findMaxSubarraySum (array, n, x);
36
+ x= 2 *x;
37
+ for (unsigned long long int k=0 ; k<n; k++){
38
+ arr[k] = 2 *array[k];
39
+ array[k] = arr[k];
40
+ }
41
+ }
42
+ cout<<max;
43
+
44
+ return 0 ;
45
+ }
You can’t perform that action at this time.
0 commit comments