fork(2) download
  1. #include<iostream>
  2. #include<string.h>
  3. #include<algorithm>
  4. using namespace std;
  5.  
  6. void rec(char * inp, char* outp, int i, int j){
  7. //base case
  8. if(inp[i]=='\0'){
  9. outp[j]='\0';
  10. if(outp<inp){
  11. cout<<outp<<endl;
  12. }
  13. }
  14. //
  15. for(int k=i;inp[k]!='\0';k++){
  16. swap(inp[i],inp[k]);
  17. outp[j]=inp[i];
  18. rec(inp,outp,i+1,j+1);
  19. swap(inp[i],inp[k]);
  20. }
  21. }
  22.  
  23. int main() {
  24. char inp[100],outp[100];
  25. cin>>inp;
  26. sort(inp,inp+strlen(inp));
  27. rec(inp,outp,0,0);
  28. return 0;
  29. }
Success #stdin #stdout 0s 4392KB
stdin
cab
stdout
bac