Загрузка...

Помогите оптимизировать

Тема в разделе C/C++ создана пользователем impelix 24 сен 2022. 169 просмотров

  1. impelix
    impelix Автор темы 24 сен 2022 5 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 24 сен 2022 50 27 мар 2022
    Скинь ссылку на задачу
     
    1. Посмотреть предыдущие комментарии (3)
    2. 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);
      }
    3. impelix Автор темы
Top
Загрузка...