(题目链接:https://www.luogu.com.cn/problem/P2524)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int tmp,pos,s,n,number=1,symbol=1,input[10],data[10];
char c;
scanf("%d\n",&n);
for(int i=1;i<=n;i++)
{
scanf("%c",&c);
input[i]=c-'0';
data[i]=i;
if(input[i]!=i)
{
symbol=0;
}
}
if(symbol==1)
{
printf("1");
return 0;
}
for(;;)
{
number++;
pos=0;
s=1;
for(int i=n;i>=2;i--)
{
if(data[i]>data[i-1])
{
pos=i-1;
break;
}
}
for(int i=n;i>pos;i--)
{
if(data[i]>data[pos])
{
swap(data[i],data[pos]);
break;
}
}
tmp=n;
for(int i=pos+1;i<(n+pos)/2+1;i++)
{
swap(data[i],data[tmp--]);
}
for(int i=1;i<=n;i++)
{
if(data[i]!=input[i])
{
s=0;
break;
}
}
if(s==1)
{
printf("%d",number);
return 0;
}
}
return 0;
}