Загрузка...

Help optimize

Thread in C/C++ created by impelix Sep 24, 2022. 167 views

  1. impelix
    impelix Topic starter Sep 24, 2022 5 Nov 28, 2021
    C
    #include <iostream>

    using namespace std;
    void dlina(int n, int k){
    for(int i = k +1; i <= n; ++i){
    cout << k << " " << i << endl;
    }
    dlina(n,k + 1);
    }
    int main()
    {
    int k, n;
    cin >> n >> k;
    dlina(n, k - 1);
    }
    Везде показывает что тайм лимитед.
    Вроде как рекурсивно.
    Спасибо, задачку если что нашел на просторах интернета.
    условие что подаются два числа. и нужно вывести последовательность длиной второго числа из чисел от 1-первого числа

    спасибо
     
  2. Whales_Nik
    Whales_Nik Sep 24, 2022 50 Mar 27, 2022
    Скинь ссылку на задачу
     
    1. View previous comments (2)
    2. impelix Topic starter
      vtlstolyarov, при вводе 5 2
      программа должна выводить
      1 2
      1 3
      1 4
      1 5
      2 3
      2 4
      2 5
      3 4
      3 5
      4 5
      а при вводе 5 3
      123
      124
      125
      134
      135
      145
      234
      235
      245
      345
    3. vtlstolyarov
      impelix, как-то так?
      C
      #include <iostream>
      #include <vector>

      using namespace std;

      void generate(vector<int> &prefix, int next, int k, int n) {
      if (prefix.size() < n) {
      for (auto i = next; i <= k - n + prefix.size() + 1; i++){
      prefix.push_back(i);
      generate(prefix, i + 1, k, n);
      prefix.pop_back();
      }
      } else {
      for (auto i = prefix.begin(); i != prefix.end(); i++)
      cout << *i << " ";
      cout << endl;
      }
      }

      int main()
      {
      int k, n;
      cin >> k >> n;
      vector<int> prefix;
      generate(prefix, 1, k, n);
      }
    4. impelix Topic starter
Top
Loading...