Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <fstream>
- #include <algorithm>
- using std::endl;
- //using namespace std;
- std::ifstream cin("permutari2.in");
- std::ofstream cout("permutari2.out");
- int n, sol[100], v[100];
- void init (int k)
- {
- sol[k]=0;
- }
- int solutie(int k)
- {
- return (k == n+1);
- }
- int succesor(int k)
- {
- if(sol[k]<n)
- {
- sol[k]++;
- return 1;
- }
- else return 0;
- }
- void afisare()
- {
- for(int i=1;i<=n;i++)
- cout<<v[sol[i]]<<" ";
- cout<<endl;
- }
- int valid(int k)
- {
- for(int i=1;i<k;i++)
- {
- if(sol[i]==sol[k]) return 0;
- }
- return 1;
- }
- void back(int k)
- {
- if(solutie(k)) afisare();
- else
- {
- init(k);
- while(succesor(k))
- {
- if(valid(k)) back(k+1);
- }
- }
- }
- int main()
- {
- cin>>n;
- for(int i=1; i<=n; i++) cin >> v[i];
- std::sort(v+1, v+n+1);
- back(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement