Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<string>
- #include<iostream>
- #include<cstdio>
- #include<algorithm>
- using namespace std;
- int permu[101];
- string perm;
- int n;
- void solve(int i)
- {
- if(i == 0)
- {
- for(int j = 0 ; j < 101 ; j++)
- {
- if(permu[j] == 0)continue;
- cout << permu[j] << " ";
- }
- cout << endl;
- exit(0);
- }
- int pos = 0;
- string temp = to_string(i);
- while(1)
- {
- pos = perm.find(temp,pos);
- if(pos == -1)
- {
- return;
- }
- if(i > 9)
- {
- perm.replace(pos,2,"dd");
- permu[pos] = i;
- pos+=2;
- solve(i-1);
- permu[pos-2] = 0;
- perm.replace(pos-2,2,temp);
- }
- else
- {
- perm.replace(pos,1,"d");
- permu[pos] = i;
- pos+=1;
- solve(i-1);
- permu[pos-1] = 0;
- perm.replace(pos-1,1,temp);
- }
- }
- }
- int main()
- {
- freopen ("joke.in","r",stdin);
- freopen ("joke.out","w",stdout);
- cin >> perm;
- int len = perm.length();
- n = len > 9 ?(perm.length()+9)/2 : len;
- solve(n);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement