Василий
Знаток
(499)
1 год назад
#include <iostream>
#include <vector>
std::vector<int> getPermutationWithSwaps(int n, int k) {
std::vector<int> arr(n);
for (int i = 0; i < n; ++i) {
arr[i] = i + 1;
}
for (int i = 0; i < k; ++i) {
std::swap(arr[n - 2 - i], arr[n - 1 - i]);
}
return arr;
}
int main() {
int n, k;
std::cin >> n >> k;
std::vector<int> result = getPermutationWithSwaps(n, k);
for (int x : result) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
обменов
Даны два числа n
и k
. Вывести перестановку из n
чисел (n
чисел от 1
до n
без повторений) такую, чтобы сортировка пузырьком по возрастанию на соответствующем массиве сделала ровно k
обменов. Если возможных ответов несколько — выведите любой.
Ввод:
5 3
Вывод:
1 5 2 3 4