#include<bits/stdc++.h>
using namespace std;
int a[102],ans=101,i,n,t[101];
bool sing(int a[],int n)
{
int i;
bool f=false;
for(i=1;i<=n;++i)
{
if(!f)
{
if(a[i-1]>a[i])
f=true;
}
else if(a[i-1]<a[i])
return false;
}
return true;
}
void dfs(int nw,int cnt,int a[],int m)
{
int i,s=1;
if(nw==n+1)
{
for(i=1;i<=n;++i)
a[i]=t[a[i]];
if(sing(a,m))
ans=min(ans,cnt);
return;
}
dfs(nw+1,cnt+1,a,m);
a[m+1]=nw;
dfs(nw+1,cnt,a,m+1);
return;
}
int main()
{
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&t[i]);
dfs(1,0,a,0);
printf("%d",ans);
return 0;
}
样例输出0,哪位大佬帮帮我!!!