1/**************************************
2Problem: HEU 5009 Arrangement
3Time: 0.0840 s
4Memory: 240 k
5Accepted Time: 2009-03-29 18:41:56
6Tips: 递归
7**************************************/
8
9#include <stdio.h>
10#include <string.h>
11int table[26],count;
12char b[30];
13void fun()
14{
15 int flag=1;
16 for(int i=0;i<26;i++)
17 {
18 if(table[i]>0)
19 {
20 flag=0;
21 b[count++]=i+'A';
22 table[i]--;
23 fun();
24 table[i]++;
25 count--;
26 }
27 }
28 if(flag)printf("%s\n",b);
29}
30int main()
31{
32 int n,i,j;
33 scanf("%d",&n);
34 for(i=1;i<=n;i++)
35 {
36 char a[30];
37 memset(table,0,sizeof(table));
38 count=0;
39 scanf("%s",a);
40 for(j=0;a[j]!=0;j++)
41 table[a[j]-'A']++;
42 b[j]=0;
43 printf("Case %d:\n",i);
44 fun();
45 }
46 return 0;
47}
48
2Problem: HEU 5009 Arrangement
3Time: 0.0840 s
4Memory: 240 k
5Accepted Time: 2009-03-29 18:41:56
6Tips: 递归
7**************************************/
8
9#include <stdio.h>
10#include <string.h>
11int table[26],count;
12char b[30];
13void fun()
14{
15 int flag=1;
16 for(int i=0;i<26;i++)
17 {
18 if(table[i]>0)
19 {
20 flag=0;
21 b[count++]=i+'A';
22 table[i]--;
23 fun();
24 table[i]++;
25 count--;
26 }
27 }
28 if(flag)printf("%s\n",b);
29}
30int main()
31{
32 int n,i,j;
33 scanf("%d",&n);
34 for(i=1;i<=n;i++)
35 {
36 char a[30];
37 memset(table,0,sizeof(table));
38 count=0;
39 scanf("%s",a);
40 for(j=0;a[j]!=0;j++)
41 table[a[j]-'A']++;
42 b[j]=0;
43 printf("Case %d:\n",i);
44 fun();
45 }
46 return 0;
47}
48