fork(1) download
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<iostream>
  4. using namespace std;
  5. char a[100];
  6. int n;
  7. void call(int mask,int sum)
  8. {
  9. int i,temp=0;
  10. if(mask==(1<<n)-1)
  11. {
  12. cout<<sum<<endl;
  13. return;
  14. }
  15.  
  16. for(i=0;i<n;i++)
  17. {
  18. if(i>0 && a[i-1]==a[i] && (mask&(1<<(i-1)))==0) continue;
  19.  
  20. if((mask&(1<<i))==0)
  21. {
  22. call((mask|(1<<i)),(sum*10+a[i]-'0'));
  23. }
  24. }
  25. }
  26. int main()
  27. {
  28. scanf("%s",&a);
  29. n=strlen(a);
  30. call(0,0);
  31. return 0;
  32. }
Success #stdin #stdout 0s 3300KB
stdin
1323
stdout
1323
1332
1233
1233
1332
1323
3123
3132
3213
3231
3312
3321
2133
2133
2313
2331
2313
2331
3132
3123
3312
3321
3213
3231