2014年NBUT校赛F题
记录不同大小史莱姆的位置 从大到小找到第一个错位的史莱姆(即小的在大的后面)
因为每一次操作都会移到最左边 所以之后每一个史莱姆都将移动一次
#include<bits/stdc++.h>
using namespace std;
struct slime{
int h;
int num;
}s[300020];
bool cmp(slime a,slime b)
{
return a.h<b.h;
}
int a[300020];
int main()
{
int N;
while(scanf("%d",&N)==1)
{
for(int i=1;i<=N;i++)
{
scanf("%d",&s[i].h);
s[i].num=i;
}
sort(s+1,s+N+1,cmp);
for(int i=1;i<=N;i++)
a[i]=s[i].num;
for(int i=N-1;i>=0;i--)
{
if(a[i]>a[i+1]||i==0)
{
printf("%d\n",i);
break;
}
}
}
return 0;
}