Advertisement
Guest User

Untitled

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