您的位置:首页 > 其它

TOJ1002 全排序问题

2005-06-01 13:40 435 查看
/*
全排序问题
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: