Advertisement
a53

nsir

a53
Nov 8th, 2017
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #include <fstream>
  2. #include <cmath>
  3. using namespace std;
  4. ifstream f("nsir.in");
  5. ofstream g("nsir.out");
  6. int st[101],n,ex=0;
  7. double eps=0.00001;
  8.  
  9. int suma1(int k)
  10. {
  11. int s=0;
  12. for(int i=1;i<=k;++i)
  13. s+=st[i];
  14. return s;
  15. }
  16.  
  17. float suma2(int k)
  18. {
  19. float s=0;
  20. for(int i=1;i<=k;++i)
  21. s+=1./st[i];
  22. return s;
  23. }
  24.  
  25. int validare(int k)
  26. {
  27. if(k==1)
  28. return 1;
  29. if(suma1(k)>n||(suma2(k)>1+eps))
  30. return 0;
  31. return 1;
  32. }
  33.  
  34. void scrie(int k)
  35. {
  36. ex=1;
  37. for(int i=1;i<=k;++i)
  38. g<<st[i]<<' ';
  39. g<<endl;
  40. }
  41.  
  42. void backtracking(int k)
  43. {
  44. if(k<=n)
  45. if((suma1(k-1)==n)&&(fabs(1-suma2(k-1))<eps))
  46. ex=1,scrie(k-1);
  47. else
  48. for(st[k]=st[k-1];st[k]<=n;++st[k])
  49. if(validare(k))
  50. backtracking(k+1);
  51. }
  52.  
  53. int main()
  54. {
  55. f>>n;
  56. backtracking(1);
  57. if(ex==0)
  58. g<<0<<'\n';
  59. return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement