fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. long long n,k;
  4. vector<long long> a;
  5. vector<long long> f(92);
  6. vector<bool> isFibo(1000,false);
  7. void sinhfibo(){
  8. f[0] = 0;isFibo[0] = true;
  9. f[1] = 1;isFibo[1] = true;
  10. for(long long i = 2; i < 92;i++){
  11. f[i] = f[i - 1] + f[i - 2];
  12. if(f[i] < 1000 ) isFibo[f[i]] = true;
  13. else break;
  14. }
  15. }
  16.  
  17. void sinh(long long start){
  18. if(a.size() == k){
  19. long long tong = 0;
  20. for(long long x : a) tong += x;
  21. if(isFibo[tong]){
  22. for(long long x : a) cout << x << " ";
  23. cout << "\n";
  24. }
  25. return;
  26. }
  27. for(long long i = start;i < n;i++){
  28. a.push_back(i + 1);
  29. sinh(i + 1);
  30. a.pop_back();
  31. }
  32. }
  33. int main(){
  34. ios_base::sync_with_stdio(false);
  35. cin.tie(0);
  36. cin >> n >> k;
  37. sinhfibo();
  38. sinh(0);
  39. }
Success #stdin #stdout 0.01s 5320KB
stdin
14 29
stdout
Standard output is empty