请教大佬(这个只有10分)
查看原帖
请教大佬(这个只有10分)
1269776
52hertz_yh楼主2024/5/29 13:38
#include<bits/stdc++.h>
using namespace std;
long long a,b,n,h[1000012],top,s[1000012],ans1[1000012],ans2[1000012];
int main()
{
	scanf("%lld",&n);
		for(int i=1;i<=n;i++)
	{
		cin>>h[i];
	}
	for(int i=1;i<=n;i++)
	{
		if(top&&s[top]>h[i])
		{
			ans1[i]=top;
			while(top)top--;
		}
		s[++top]=h[i];
	}
	top=0;
	for(int i=1;i<=n;i++)
	{
		if(top&&s[top]<h[i])
		{
			ans2[i]=top;
			while(top)top--;
		}
		s[++top]=h[i];
	}
	for(int i=1;i<=n;i++)
	{
		b=max(a,ans1[i]);
		a=max(b,ans2[i]);
	}
	printf("%lld\n",a);
}

请教大佬(这个只有10分)

2024/5/29 13:38
加载中...