Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- using lli = long long;
- const int N = 1e5 + 10;
- int ar[N];
- lli dis[N];
- int n;
- lli dfs(int u){
- if(dis[u] != 0) return dis[u];
- dis[u] = 1;
- if(u - 1 >= 1 and ar[u - 1] < ar[u]) dis[u] = max(dis[u], 1 + dfs(u - 1));
- if(u + 1 <= n and ar[u + 1] < ar[u]) dis[u] = max(dis[u], 1 + dfs(u + 1));
- return dis[u];
- }
- int main(){
- scanf("%d", &n);
- for(int i=1;i<=n;i++)
- scanf("%d", &ar[i]);
- for(int i=1;i<=n;i++)
- if(dis[i] == 0) dfs(i);
- lli ans = 0;
- for(int i=1;i<=n;i++) ans += dis[i];
- cout << ans;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement