Advertisement
Guest User

backtracking

a guest
Apr 25th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. using namespace std;
  4. int x[10],n,p,i,k,sem,r=0;;
  5. int tiparire(){
  6. for(i=1;i<=p;i++)cout<<x[i]<<" ";
  7. cout<<endl;}
  8. int valid (int q){
  9. int m=1;
  10. for(i=1;i<k;i++)
  11. if(q==x[i]){m=0;
  12. break;}
  13. if(q>x[k-1])m=1;
  14. else m=0;
  15. return m;
  16. }
  17. int backtracking(){
  18. k=1;
  19. x[k]=0;
  20. while(k>0){
  21. sem=0;
  22. while((x[k]<n)&&(sem==0)){
  23. x[k]=x[k]+1;
  24. if(valid(x[k])==1)sem=1;
  25. }
  26. if(sem==1)if(k==p){tiparire();
  27. r=r+1;}
  28. else {k=k+1;
  29. x[k]=0;}
  30. else k=k-1;}
  31. cout<<r;}
  32. int main (){
  33. cin>>n>>p;
  34. if(p>=n){cout<<"K trebuie sa fie mai mic strict decat n";
  35. cin>>p;}
  36. backtracking();}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement