Advertisement
artur99

Untitled

Apr 9th, 2017
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int n, st[20], l[20], c[20], k;
  5.  
  6. void init(){
  7.     st[k]=0;
  8. }
  9. int succesor(){
  10.     if(st[k]<n){
  11.         st[k]++;
  12.         return 1;
  13.     }
  14.     return 0;
  15. }
  16. int valid(){
  17.     int i;
  18.     for(i=1; i<k; i++){
  19.         if(st[i] == st[k])
  20.             return 0;
  21.     }
  22.     return 1;
  23. }
  24. int solutie(){
  25.     int i, s=0;
  26.     /*if(k<2) return 0; //min 2 numere*/
  27.     for(i=1;i<=k;i++)
  28.         s=s+st[i];
  29.    
  30.     return s==n;
  31. }
  32. int solfin(){
  33.     return k==n;
  34. }
  35. void tipar(){
  36.     int i;
  37.     for(i=1; i<=k; i++)
  38.         cout<<st[i]<<" ";
  39.     cout<<endl;
  40. }
  41. void back(){
  42.     int as;
  43.     k=1;
  44.     init();
  45.     while(k>0){
  46.         do{}while((as=succesor())&&!valid());
  47.         if(as==1){
  48.             if(solutie()==1){
  49.                 tipar();
  50.             }
  51.             if(solfin()==0){
  52.                 k++;
  53.                 init();
  54.             }
  55.         }else{
  56.             k--;
  57.         }
  58.     }
  59. }
  60.  
  61.  
  62. int main(){
  63.     cin>>n;
  64.     back();
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement