profile
Опубликовано 6 лет назад по предмету Информатика от Трафальгар

Перебор размещений n-элементного множества. На с++, питон или паскаль абс

  1. Ответ
    Ответ дан DartDoggy
    //GNU C++ compiler
    #include <bits/stdc++.h>

    using namespace std;

    int main()
    {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    /* ввод и вывод из файла, если не нужно можно смело стирать. ну или закомментить*/
    int n;
    cin >> n;
    vector<int> a(n);
    /* предпологаю что у нас числа, при желании тип данных можно поменять */
    for( int i = 0; i < n; i++)
    cin >> a[i];
    sort( a.begin(), a.end() );
    while( next_permutation(a.begin(), a.end()) )
    {
    for( int i = 0; i < n; i++)
    cout << a[i] << " ";
    cout << "n";
    }
    return 0;
    }
    /*если я правильно понял задачу, то это нужное решение. задача NP-полная факториальной сложности. 10 чисел отработает ±быстро(порядка секунды), для 11 можно получить результат немного подождав(около 10 секунд), для 12 лучше набраться терпения(порядка 2 минут). 13(20-30 минут) и дальше лучше не пробовать
    ввод использовал медленный, т.к. в нашем случае это капля в море
    могут быть опечатки, печатал с телефона*/
Самые новые вопросы