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 минут) и дальше лучше не пробовать ввод использовал медленный, т.к. в нашем случае это капля в море могут быть опечатки, печатал с телефона*/
#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 минут) и дальше лучше не пробовать
ввод использовал медленный, т.к. в нашем случае это капля в море
могут быть опечатки, печатал с телефона*/
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
setlocale(LC_CTYPE, "Rus");
srand(time(0));
int n,min=RAND_MAX,nl=0, j = 0;
cout << "Размер массива: "; cin >> n;
int *a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = rand() % 10;
cout << a[i] << ' ';
if ((a[i] < min)&&((i+1)%2!=0)) min = a[i];
}
for (int i = 0; i < n; i++) if (a[i] == min) nl++;
cout << endl;
while (j < n-nl)
if (a[j] == min)
for (int i = j; i < n - 1; i++) swap(a[i], a[i + 1]);
else j++;
for (int i = 0; i < n - nl; i++) cout << a[i] << ' ';
cout << endl;
system("pause");
return 0;
}