Условие задачи | | Прогресс |
Темы:
Сортировка "пузырьком"
В витрине ювелирного магазина стоит манекен, на шею которого надето ожерелье. Оно состоит из N колечек, нанизанных на замкнутую нить. Все колечки имеют разные размеры. В зависимости от размера колечки пронумерованы числами от 1 до N, начиная с самого маленького и до самого большого. Колечки можно передвигать вдоль нити и протаскивать одно через другое, но только в том случае, если номера этих колечек отличаются более чем на единицу.
Продавец хочет упорядочить колечки так, чтобы они располагались по возрастанию номеров вдоль нити по часовой стрелке. Снимать ожерелье с манекена нельзя.
Требуется написать программу, которая по заданному начальному расположению колечек находит последовательность протаскиваний колечек одно через другое, приводящую исходное расположение колечек в желаемое.
Входные данные
Первая строка входных данных содержит число N (2 ≤ N ≤ 50).
Во второй строке через пробел следуют N различных чисел от 1 до N — номера колечек, расположенных вдоль нити по часовой стрелке.
Выходные данные
Ваша программа должна вывести описание процесса упорядочения.
В каждой строке выходных данных, кроме последней, должны быть записаны через пробел два числа, указывающие номера колечек, протаскиваемых друг через друга. В последней строке должен стоять ноль.
Количество выводимых строк не должно превышать 50000.
Если требуемого упорядочения колечек достичь не удается, программа должна вывести одно число –1
Ввод |
Вывод |
4
3 1 2 4 |
4 2
4 1
0 |
| |
|
Темы:
Сортировка "пузырьком"
Задачи на моделирование
Дан массив из N различных натуральных чисел от 1 до N. Сортировка массива по возрастанию "пузырьком" работает следующим образом. Сначала сравниваются первый и второй элемент, и, если первый больше второго, то они меняются местами. Затем та же процедура производится со вторым и третьим элементом, …, с предпоследним и последним. Затем эта процедура снова повторяется с первым и вторым, со вторым и третьим, …, с предпоследним и последним элементами. И так (N – 1) раз.
Сортировка «с конфеткой» выполняется по тем же правилам, но дополнительно задан список пар чисел, которые не меняются друг с другом ни при каких условиях (в таком случае сортирующий получает конфетку за то, что пропускает соответствующий обмен). Например, наличие в списке пары (4,1) обозначает, что если в какой-то момент рядом окажутся числа 4 и 1 или 1 и 4, и по алгоритму сортировки их нужно будет поменять местами, то обмена не произойдет, а сортирующий получит конфетку.
Требуется провести сортировку «с конфеткой» данного массива и выдать результат сортировки.
Входные данные
Сначала вводится число N — количество чисел в массиве, затем N чисел — элементы массива. Далее задается число M — количество пар чисел, за которые дают конфетку, а затем M пар чисел. Если в списке есть пара (i,j), то и за пару (j,i) также дают конфетку.
1 ≤ N ≤ 5000, 0 ≤ M ≤ 10000.
Выходные данные
Требуется вывести массив после сортировки.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
4
1 4 2 3
2
4 3
1 2 |
1 2 4 3 |
| |
|
Темы:
Сортировка "пузырьком"
На уроке физкультуры тренер Андрей Сергеевич выстраивает учеников в одну шеренгу. В шеренге сначала идут мальчики, а потом девочки. При этом мальчики в шеренге стоят по убыванию роста, аналогично девочки тоже стоят по убыванию роста. Таким образом, следом за самым низким мальчиком стоит самая высокая девочка.
Андрея Сергеевича заинтересовал вопрос, какое максимальное различие в росте двух стоящих рядом учеников. Напишете программу, которая поможет Андрею Сергеевичу ответить на этот важный для него вопрос.
Формат входных данных
Первая строка содержит целое число \(n\) — число учеников в классе (\(2 \le n \le 50\)). Следующие \(n\) строк содержат по два целых числа каждая: \(a_i\) и \(h_i\) — пол и рост в сантиметрах \(i\)-го ученика (\(a_i\) равно 0 или 1, \(100 \le h_i \le 200\)). Значение \(a_i = 0\) означает, что \(i\)-й ученик — мальчик, а значение \(a_i = 1\) означает, что \(i\)-й ученик — девочка.
Формат выходных данных
Выведите одно число — максимальное различие в росте стоящих рядом учеников после того, как они выстроятся в шеренгу на уроке физкультуры.
| |
|