📄 3090878_ce.cc
字号:
#include <stdio.h>
void main()
{
int i, j, k, n;
int len[50001];
int left[50001];
int right[50001] ;
while(scanf("%d",&n)==1)
{
for(i = 0; i < n; i++)
{
scanf("%d",&len[i]);
}
left[0] = -1;
for(j = 1; j < n; j++)
{
k = j-1;
while(k!=-1&&len[k]<len[j])
k = left[k];
left[j] = k;
}
right[n-1] = n;
for(j = n-2; j >= 0; j--)
{
k = j+1;
while(k!=n&&len[k]>len[j])
k = right[k];
right[j] = k;
}
int ans = -1;
for(i = 0; i < n-1; i++)
{
int r;
r = right[i]-1;
if(r==i||r-i<=ans)
continue;
else
{
while(r>i&&left[r]>=i&&r-i>ans)
r = left[r];
r = r-i;
if(r > ans)
ans = r;
}
}
printf("%d\n",ans);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -