СРОЧНО!!!! ПИТОН и С++ Ровно К обменов Даны два числа n и k. Вывести перестановку из n...

0 голосов
708 просмотров

СРОЧНО!!!! ПИТОН и С++ Ровно К обменов Даны два числа n и k. Вывести перестановку из n чисел (n чисел от 1 до n без повторений) такую, чтобы сортировка пузырьком по возрастанию на соответствующем массиве сделала ровно k обменов. Если возможных ответов несколько — выведите любой. Входные данные Даны натуральное число n (n≤ 100) и целое неотрицательное k. Гарантируется, что для всех наборов тестовых данных решение существует. Выходные данные Выведите искомую перестановку в одной строке. Числа разделяйте пробелами. Примеры Ввод Вывод 5 3 1 5 2 3 4 1 0 1


Информатика (24 баллов) | 708 просмотров
Дан 1 ответ
0 голосов

Ответ:

n,k=map(int,input().split())

b=[0]*n

x=1

t=0

while k>=(n-t-1) and k>0:

   k=k-(n-t-1)

   b[t]=n-t

   t+=1

for i in range(-(n-t), 0):

   if i!=-(k+1):

       b[i]=x

       x+=1

   else:

       b[i]=n-t

print(*b)

Объяснение:

(102 баллов)