Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int x[100], as, ev, k, i, n, s, p;
- int prim(int y)
- {
- int ok=1;
- if(y==1) return 0;
- for(i=2;i<=y/2;i++)
- if(y%i==0) ok=0;
- return ok;
- }
- void init()
- {
- x[k]=0;
- }
- void succesor()
- {
- s=0;
- for(i=1;i<=k;i++)
- s+=x[i];
- if(s<=n)
- {
- x[k]++;
- as=1;
- }
- else as=0;
- }
- void valid()
- {
- ev=1;
- //ev=prim(x[k]);
- for(i=1;i<k;i++)
- if(x[i]>x[k]) ev=0;
- }
- int solutie()
- {
- return (s==n-1&&k==p);
- }
- void tipar()
- {
- for(i=1;i<=k;i++) cout<<x[i]<<" ";
- cout<<"\n";
- }
- int main()
- {
- n=1;
- while(n){
- cin>>n;
- cin>>p;
- k=1; init();
- while(k)
- {
- do{
- succesor();
- if(as) valid();
- }while(as&&(!as||!ev));
- if(as)
- {
- if(solutie()) tipar();
- else
- {
- k++;
- init();
- }
- }
- else k--;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement