/*
全排序问题
http://acm.tongji.edu.cn/people/ps/showproblem.php?problem_id=1002
Time Limit:1s Memory Limit:1000k
Total Submit:5487 Accepted:2007
Problem
将一个字符组全排序
Input
一个长度小于10的字符串,该字符串由数字1~9组成。字符不会重复出现。
Output
按数字在输入串中出现的次序从小到大的顺序输出该字符组的全排序
Sample Input
132
Sample Output
1 3 2 1 2 3 3 1 2 3 2 1 2 1 3 2 3 1
*/
#include <stdio.h>
#include <string.h>
char workarr[10];
int visited[10] = {0};
char list[10];
int num;
void DFS(int l)
{
int i;
if (l == num)
{
for (i=0; i<num; i++)
{
if (i > 0)
printf(" ");
printf("%c", workarr[i]);
}
printf("/n");
return;
}
for (i=0; i<num; i++)
if (!visited[i])
{
workarr[l] = list[i];
visited[i] = 1;
DFS(l+1);
visited[i] = 0;
}
}
int main()
{
scanf("%s", list);
num = strlen(list);
DFS(0);
return 0;
}