С++ Для всех задач ввод – из файла input.txt, вывод – в файл output.txt, ограничение
по времени на один тест – 2с
Задача 1. «Исправление успеваемости (вручную)»
Как вы наверняка знаете, Вовочка не является примерным учеником. За учебный
год он получил много разных оценок, и теперь не знает, как показать дневник своему
отцу. Отец Вовочки считает хорошими оценки 6 и выше, а все остальные считает
плохими. Дело в том, что Вовочке было обещано лишить его отдыха в Летней школе по
информатике в том случае, если он когда- либо получит три или более плохие оценки
подряд. Вовочка уже давно научился стирать оценки из дневника, но с каждой стертой
оценкой вероятность раскрытия такой секретной операции возрастает. В настоящий
момент перед ним стоит непростая задача — удалить наименьшее количество оценок из
имеющейся последовательности так, чтобы после удаления никакие три плохие оценки
не шли подряд.
Вовочке решить задачу и подарить ему шанс участия в Летней школе по
информатике.
Формат входных данных:
Программа получает на вход в первой строке целое число n (1 количество оценок, полученных Вовочкой за год. Вторая строка содержит
последовательность n целых чисел от 1 до 10. Оценки заданы в хронологическом
порядке.
Формат выходных данных:
В первую строку выведите t — наименьшее количество оценок, которые надо
удалить из последовательности. Во вторую строку выведите последовательность
оценок, которая получается после оптимального исправления успеваемости. Если
возможных оптимальных решений несколько — выведите любое.
Пример
input.txt output.txt
10 4
4 5 4 5 4 5 7 8 9 5 4 5 7 8 9 5
5 0
7 4 5 8 9 7 4 5 8 9
Задача 2. Фишка
Дан прямоугольник размера 1× N клеток. Сколько существует
провести фишку из крайней левой клетки в крайнюю правую, если можно перемещать
фишку только на 2 или на 3 клетки вправо?
Формат входных данных: целое число N (1≤ N≤ 160).
Формат выходных данных:количество переместить фишку с левой клетки в
правую.
Пример
input.txt output.txt
3 1
6 2
Задача 3. Тайные письма
Катя и Андрей очень любят разные загадки и головоломки. А ещѐ они
очень любят криптографию! Недавно они придумали необычный шифр, чтобы
3
обмениваться тайными посланиями. Катя пишет тайное сообщение длины K и
подбирает такие N и M, что N∙M = K. Потом она рисует табличку размера N∙M и
построчно заполняет еѐ своей строкой. Например, если сходная строка была 'abcdef' и
Катя выберет N = 3 и M = 2, то она нарисует такую табличку:
a b
c d
e f
Потом она выписывает текст по столбцам (в указанном примере она
выпишет ‘acebdf’), и отдаѐт числа N, M и выписанную строку Андрею. Теперь
Андрею надо восстановить тайное послание. Но он что-то совсем запутался! А в
сообщении должна быть важная информация Андрею получить
исходное сообщение.
Формат входных данных: первая строка содержит два натуральных числа N и M
– размер матрицы шифрования. Следующая строка содержит N∙M строчных букв
латинского алфавита – зашифрованное сообщение.
Формат выходных данных:выведите N∙M строчных букв латинского алфавита –
расшифрованное сообщение.
Пример
input.txt output.txt
3 2
acebdf
abcdef
3 5
sowmnaottkheeer
smokeonthewater
2 6
ftihreesikny
fireinthesky