Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream f("permutari1.in");
- ofstream g("permutari1.out");
- int n,st[10];
- void succesor(int st[],int k,int& as)
- {
- if(st[k]>1)
- {
- as=1;
- st[k]--;
- }
- else
- as=0;
- }
- void valid(int st[],int k,int& ev)
- {
- ev=1;
- for(int i=1;i<k;i++)
- if(st[i]==st[k])
- ev=0;
- }
- int solutie(int k)
- {
- if(k==n)
- return 1;
- else
- return 0;
- }
- void tipar()
- {
- for(int i=1;i<=n;i++)
- g<<st[i]<<" ";
- g<<endl;
- }
- int main()
- {
- int k,ev,as;
- f>>n; //n=3--->nr de numere
- k=1; //pozitia din vector
- st[k]=n+1; //vectorul(stiva)
- while(k>=1)
- {
- do
- {
- succesor(st,k,as);
- if(as==1)
- valid(st,k,ev);
- }while(as==1 && ev==0);
- if(as==1)
- if(solutie(k)==1)
- tipar();
- else
- {
- k++;
- st[k]=n+1;
- }
- else
- k--;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement