#include<stdio.h>
const int maxn=100010;
int array[maxn];
int n;
int count=0;
int findk(int k)//从上次查找的地方开始
{
for(int i=k;i<n;i++)
if(array[i]!=i)
return i;
return 0;
}
int main()
{
//freopen("in.txt","r",stdin);
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&array[i]);
}
int k=1;
k=findk(k);
while(k)
{
if(array[0]==0)
{
int tmp=array[k];
array[k]=0;
array[0]=tmp;
count++;
}
while(array[0]!=0)
{
int tmp=array[0];
array[0]=array[tmp];
array[tmp]=tmp;
count++;
}
k=findk(k);
}
printf("%d\n",count);
return 0;
}
PAT1067
最新推荐文章于 2025-04-18 21:42:01 发布