Advertisement
What_Ever

Untitled

Feb 4th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include<string>
  2. #include<iostream>
  3. #include<cstdio>
  4. #include<algorithm>
  5. using namespace std;
  6. int permu[101];
  7. string perm;
  8. int n;
  9. void solve(int i)
  10. {
  11.     if(i == 0)
  12.     {
  13.         for(int j = 0 ; j < 101 ; j++)
  14.         {
  15.             if(permu[j] == 0)continue;
  16.             cout << permu[j] << " ";
  17.         }
  18.         cout << endl;
  19.         exit(0);
  20.     }
  21.     int pos = 0;
  22.     string temp = to_string(i);
  23.     while(1)
  24.     {
  25.         pos = perm.find(temp,pos);
  26.         if(pos == -1)
  27.         {
  28.             return;
  29.         }
  30.         if(i > 9)
  31.         {
  32.             perm.replace(pos,2,"dd");
  33.             permu[pos] = i;
  34.             pos+=2;
  35.             solve(i-1);
  36.             permu[pos-2] = 0;
  37.             perm.replace(pos-2,2,temp);
  38.         }
  39.         else
  40.         {
  41.             perm.replace(pos,1,"d");
  42.             permu[pos] = i;
  43.             pos+=1;
  44.             solve(i-1);
  45.             permu[pos-1] = 0;
  46.             perm.replace(pos-1,1,temp);
  47.         }
  48.     }
  49. }
  50. int main()
  51. {
  52.     freopen ("joke.in","r",stdin);
  53.     freopen ("joke.out","w",stdout);
  54.  
  55.     cin >> perm;
  56.     int len = perm.length();
  57.     n = len > 9 ?(perm.length()+9)/2 : len;
  58.     solve(n);
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement