Cod sursa(job #1936330)

Utilizator Mazi17Andrei Mazilu Mazi17 Data 23 martie 2017 00:15:25
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>

using namespace std;
int n,s[100],nr;

void init (int k)
{ s[k]=0;

}
void suc (int k ,int &as)
{ if(s[k]<n)
  { s[k]++;
    as=1;

  }
    else as=0;
}
void valid (int k,int &ev)
{ ev=1;
 for(int i=1;i<k;i++)
    if(s[k]==s[i]) ev=0;
}
int solutie (int k)
{ if(k==n) return 1;
    else return 0;

}
void tipar(int k)
{ nr++;
 cout<<"solutie cu numarul \"<<nr<<endl;
 for(int i;i<k;i++)
    cout<<s[i]<<" ";
    cout<<endl;
}
void back()
{ int k=1,as,ev;
 init(k);
 while(k>0)
 { do
 {suc(k,as);
  if(as==1) valid(k,ev);

 }
 while(as==1 && !ev);
 if(as==1) if(solutie(k)) tipar(k);
 else
 {
     k++;
     init(k);
 }
     else k--;
 }
}
int main()
{ cin>>n;
back();
if(nr==0) cout<<"nu avem sol";
    else cout<<nr;
}