#include <bits/stdc++.h>
using namespace std;
int n, ans, g[105], a[105];
int main()
{
scanf("%d", &n);
ans = n;
for(int i = 0; i < n; i++)
{
cin >> g[i];
a[i] = 1;
}
for(int i = 0; i < n - 1; i++)
{
if(g[i] > g[i + 1])
{
a[i] = a[i + 1] + 1;
ans++;
}
else if(g[i + 1] > g[i])
{
a[i + 1] = a[i] + 1;
ans++;
}
}
cout << ans;
return 0;
}
1 个赞
从左往右与从右往左分开写
1 个赞
从右往左要用max
1 个赞
因为是两个不同的步骤,不能放到一个循环里
for(int i=1;i<n;i++)if(a[i+1]>a[i])b[i+1]=b[i]+1;
for(int i=n;i>1;i--)if(a[i-1]>a[i])b[i-1]=max(b[i]+1,b[i-1]);
2 个赞
你回我干啥
1 个赞
? ![]()
2 个赞
666