Олимпиадный тренинг

Задача . E. Очередной конструктив про перестановки


Допустим, дана перестановка \(p\) из \(n\) элементов — массив, каждый элемент которого — целое число от \(1\) до \(n\), и в который каждое число от \(1\) до \(n\) входит ровно один раз.

За одну операцию вы удаляете каждый элемент перестановки, который меньше хотя бы одного из своих соседей. Например, если применить операцию к \([3, 1, 2, 5, 4]\), вы получите \([3, 5]\). Если применить операцию еще один раз, вы получите \([5]\).

Легко заметить, что после конечного числа операций любая перестановка превращается в массив, состоящий из одного элемента \(n\).

Даны два целых числа \(n\) и \(k\). Постройте перестановку размера \(n\), которая превращается в массив, состоящий из единственного числа \(n\), после ровно \(k\) операций (не раньше).

Входные данные

В первой строке задано одно целое число \(t\) (\(1 \le t \le 2000\)) — количество наборов входных данных.

Каждый набор входных данных состоит из одной строки, содержащей два целых числа \(n\) и \(k\) (\(2 \le n \le 100\); \(1 \le k \le n - 1\)).

Выходные данные

Для каждого набора входных данных выведите ответ следующим образом:

  • если такой перестановки размера \(n\), которая превращается в массив из единственного элемента \(n\) после ровно \(k\) операций, не существует, выведите \(-1\);
  • иначе выведите \(n\) различных целых чисел от \(1\) до \(n\) — требуемую перестановку. Если таких перестановок несколько, выведите любую из них.

Примеры
Входные данныеВыходные данные
1 4
5 2
5 4
2 1
3 2
3 1 2 5 4
-1
1 2
2 1 3

time 2000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя