#include <bits/stdc++.h> using namespace std; int rate [100000 + 10]; long long values [100000 + 10]; // use long long int main() { int n; long long ans = 0, tmp = 0; cin >> n; for(int i = 0; i < n; i++) cin >> rate[i]; values[0] = 1; // case 1 for(int i = 1; i < n; i++){ // scan input array from left to right if(rate[i] > rate[i - 1]){ values[i] = values[i - 1] + 1; // case 1, a } else values[i] = 1; // case 1,b } ans = values[n - 1]; // case 2 for(int i = n - 2; i >= 0; i--){ // scan input array from right to left if(rate[i] > rate[i + 1]){ tmp = values[i + 1] + 1; // case 2, a } else tmp = 1; // case 2, b ans += max(tmp, values[i]); // maximum of the two values for child (i) values[i] = tmp; } cout << ans; return 0; }
Sunday, April 5, 2020
Candies- Hacker Rank Solution
Subscribe to:
Post Comments (Atom)
In the python code why are we not able to integrate all the cases in the same 'for' loop. As the range for valleys, rises and peaks are same.
ReplyDelete