Задачи на сортировку массива

Успехи преподавания

Преподаватель Василий зорко следит за успеваемостью своих учеников.

Известно сколько задач по дням решали ученики. Помогите Василию определить насколько успешно идет преподавание.

 

Если ученики выступали каждый день не хуже, чем в предыдущий - вывести ОК, иначе - номер дня первого провала.

 

Вход: на первой строке число (N < 1000) - количество дней.

На второй количество задач по дням.

Выход: Если ученики выступали каждый день не хуже, чем в предыдущий - вывести ОК, иначе - номер дня первого провала.

 

Примеры:

Вход

Выход

Комментарий

5

1 2 6 6 8

OK

Все замечательно

3

10 20 19

3

На третий день преподавания впервые случилось страшное: ученики решили меньше задач чем во второй день

 

Рекламная акция

В сети магазинов "Н-Аудио" проводится рекламная акция. Каждый второй товар – бесплатно. Естественно, кассирам дано указание пробивать товары в таком порядке, чтобы магазин потерял как можно меньше денег.

По списку товаров определите максимальную сумму в чеке.

 

Вход: натуральное число товаров (N < 1000) и далее N натуральных чисел – цены товаров.

Выход: одно число – максимальная сумма чека.

 

Пример:

Вход

Выход

Комментарий

5 2 1 10 50 10

70

Возможен такой порядок: 10 2 50 1 10

 

По двум попыткам

Спортсмену дается две попытки. В зачет идет наибольший результат.

Из списка попыток получите список результатов от лучших к худшим.

Вход: натуральное число спортсменов (N < 1000) и далее N пар чисел – по две попытки на каждого спортсмена.

Выход: N чисел– результаты спортсменов по убыванию.

Пример:

Вход

Выход

Комментарий

3 4 4 7 3 2 9

9 7 4

Зачетный результат 1-го спорсмена 4, 2-го - 7, 3-го - 9

 


Распределенные вычисления

На компьютере, оснащенном многоядерным процессором, можно выполнять разные вычисления параллельно (одновременно). Например, если нужно отсортировать большой массив, можно отсортировать его части, а потом объединить их (слияние отсортированных массивов в один делается очень быстро).

 

Вам дан массив, который следует "разбить" на две части и отсортировать их по отдельности.

Естественно, дополнительные массивы использовать не следует.

 

Вход: на первой строке число (N < 1000) - количество элементов в массиве.

На второй сам массив,на третьей – количество элеменов в левой части
(натуральное от 1 до N-1)

Элементы массива - целые числа.

Выход: массив после операции.

 

Примеры:

Вход

Выход

Комментарий

5

3 1 2 2 1

2

1 3 1 2 2

Надо отдельно отсортировать группы 3 1 и 2 2 1

6

2 1 3 4 6 2

3

1 2 3 2 4 6

Сортируются отдельно элементы с 0-го по 2-й
и с 3-го по 5-й

 

Призеры олимпиады

По результатам олимпиады участники награждаются дипломами. Набравшие одинаковые баллы получают дипломы одинаковой степени. Призером олимпиады считается участник, получивший диплом не хуже III степени.

По результатам олимпиады определите количество призеров.

 

Вход: натуральное число призеров (N < 100) и далее N натуральных чисел – результаты участников.

Выход: одно число – число призеров.

Пример:

Вход

Выход

Комментарий

10 1 3 4 3 5 6 7 7 6 1

5

Призеры – это участники, набравшие 7, 6 или 5 баллов

 

Ровно К обменов

Даны два числа N и К. Вывести перестановку из N чисел (N чисел от 1 до N без повторений) такую чтобы сортировка пузырьком по возрастанию на соответствующем массиве сделала ровно K обменов. Если возможных ответов несколько – выведите любой.

 

Вход: натуральное число N (N < 100) и целое  неотрицательное К. Гарантируется, что для всех наборов тестовых данных решение существует.

Выход: ответ на задачу.

Пример:

Вход

Выход

Комментарий

5 3

3 1 2 5 4

В процессе сортировки массива 3 1 2 5 4 будут совершены обмены: 1«3 3«2 и 5«4. Возможны и другие варианты ответа.