#include<cstdio>
#include<string.h>
int count=0;
char a[10];
void perm(char a[],int k,int n)
{
int i,u,v,w,flag;
char temp,t[10];
strcpy(t,a);
if(k==n)
{
flag=1;
for(u=0;u<=n-2;u++)
for(v=u+1;v<=n-1;v++)
for(w=v+1;w<=n;w++)
if((a[v]<a[w])&&(a[w]<a[u])) flag=0;
if(flag)
{
count++;
printf("%d:%s\n",count,a);
}
}
else
for(i=k;i<=n;i++)
{
strcpy(a,t);
temp=a[k];
a[k]=a[i];
a[i]=temp;
perm(a,k+1,n);
}
}
int main()
{
printf("请输入入栈序列\n");
scanf("%s",a);
printf("所有出栈序列为:\n");
perm(a,0,strlen(a)-1);
}
#include<cstdio>
#include<string.h>
int count=