Skip to content

Commit f624eb1

Browse files
Create RENT.cpp
1 parent 609d5fa commit f624eb1

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

Hackerearth/RENT.cpp

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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+
}

0 commit comments

Comments
 (0)