Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int n,sum,k1,v[15];
- long long sol[1000005];
- bool used[10];
- void afisare(int k)
- {
- ++k1;
- long long nr=v[1];
- for(int j=2;j<=k;++j)
- nr=nr*10+v[j];
- sol[k1]=nr;
- }
- void bkt(int k)
- {
- for(int i=0;i<=9;++i)
- if(!used[i])
- {
- if(i==0&&k==1)
- continue;
- used[i]=1;
- v[k]=i;
- sum+=i;
- if(sum==n)
- {
- afisare(k);
- if(used[0]==0)
- v[k+1]=0,afisare(k+1);
- }
- else
- bkt(k+1);
- sum-=i;
- used[i]=0;
- }
- }
- int main()
- {
- cin>>n;
- if(n>45)
- cout<<-1;
- else
- {
- bkt(1);
- sort(sol+1,sol+k1+1);
- for(int i=1;i<=k1;++i)
- cout<<sol[i]<<'\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement