好多个WA,一共52分,第一个错的是8号测试点,已经下载,答案是131380,我这个程序算的是131382,实在找不出来多算的那俩是哪里来的了,求助
#include<bits/stdc++.h>
using namespace std;
int a[500000];
int k=1;
int main()
{
int n,i,j,x,y,z,t;
long long ans;
cin>>n;
ans=n-1;
a[0]=0x7fffffff;
for(i=1;i<=n;i++)
{
cin>>x;
if(x<=a[k-1])
{
a[k]=x;
k++;
t=k;
while(t>2 && a[t-1]==a[t-2])
{
t--;
ans++;
}
}
else
{
y=0;
z=k;
while(z-y>1)
{
t=(y+z)/2;
if(a[t]>x)
y=t;
else
z=t;
}
while(y>0 && a[y]<=x)
y--;
while(y<k && a[y]>x)
y++;
if(y==1)
ans+=k-y-1;
else
ans+=k-y;
while(a[y]==x)
y++;
a[y]=x;
k=y+1;
}
}
cout<<ans;
return 0;
}