📄 3090808_wa.java
字号:
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
int i, j, k, n;
int min, max, mid;
int [] len = new int [50001];
int [] left = new int [50001];
int [] right = new int [50001];
while(cin.hasNext())
{
n = cin.nextInt();
for(i = 0; i < n; i++)
{
len[i] = cin.nextInt();
}
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
{
boolean fail = false;
min = i+1;max = r;
while(min < max)
{
if(max - i <= ans)
{
fail = true;
break;
}
mid = (max+min)>>1;
if(left[mid]<i)
{
min = mid+(min==mid?1:0);
}
else
{
max = mid;
}
}
if(fail)
continue;
if(left[min]>=i)
min--;
min = min-i;
if(min > ans)
ans = min;
}
}
System.out.println(ans);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -