Входной файл: ? Выходной файл: ? Время на тест: - Ограничение на память: - Тесты к задаче:Скачать
Рассмотрим вычислительную машину, выполняющую две операции (назовем её МДО). Она имеет девять регистров, пронумерованых числами от 1 до 9. Каждый регистр хранит неотрицательное целое число в диапазоне от 0 до 1000 включительно. МДО способна выполнять две операции:
S i j
Записать значение регистра i, увеличенное на 1, в регистр j (i может быть равным j).
P i
Напечатать значение регистра i.
Программа для МДО состоит из начальных значений каждого регистра и последовательности операций. Для заданного целого числа N (0 £ N £ 255) необходимо написать для МДО программу, которая печатает убывающую последовательность целых чисел N, N-1, N-2, …, 0. Максимальное количество подряд идущих S операций должно быть как можно меньше.
Пример программы для МДО и её исполнения при N=2:
Операция
Новые значения регистров
Напечатанное значение
1 2 3 4 5 6 7 8 9
Начальные значения
0 2 0 0 0 0 0 0 0
P 2
0 2 0 0 0 0 0 0 0
2
S 1 3
0 2 1 0 0 0 0 0 0
P 3
0 2 1 0 0 0 0 0 0
1
P 1
0 2 1 0 0 0 0 0 0
0
Варианты входных данных, пронумерованные от 1 до 16, расположены на сервере соревнования.
Входные данные:
Первая строка входного файла содержит одно целое число K, обозначающее номер теста.
Вторая строка содержит число N.
Пример входных данных:
1
2
Выходные данные:
Первая строка выходного файла должна содержать текст “FILE reverse K”, где K обозначает номер теста.
Вторая строка выходного файла должна содержать девять разделенных пробелами чисел, являющихся начальными значениями регистров и расположеных в следующем порядке: регистр 1, регистр 2, ... , регистр 9.
Остальные строки выходного файла должны содержать последовательность операций в порядке их исполнения, по одной операции в строке. Таким образом, третья строка должна содержать первую операцию, четвертая – вторую, и т.д. Последняя строка должна содержать операцию, печатающую 0. В каждой строке должна содержаться только допустимая операция. Операции должны быть отформатированы как указано в примере.
Пример выходного файла №1 (неполный балл):
FILE reverse 1
0 2 0 0 0 0 0 0 0
P 2
S 1 3
P 3
P 1
Пример выходного файла №2 (полный балл):
FILE reverse 1
0 2 1 0 0 0 0 0 0
P 2
P 3
P 1
СИСТЕМА ОЦЕНКИ
Оценка каждого теста осуществляется с учетом корректности и оптимальности полученной программы для МДО.
Корректность: 20%
Программа для МДО является правильной, если она выполняет не более 131 подряд идущей S-операции, и последовательность напечатаных значений является правильной (содержит ровно N+1 целое число, начиная с числа N и заканчивая 0). Если какая-то S-операция вызывает переполнение регистра, программа для МДО считается неправильной.
Оптимальность: 80%
Оптимальность корректной программы оценивается по максимальному количеству подряд идущих S-операций в программе, которое должно быть как можно меньше. Количество баллов будет определяться отличием вашей программы от наилучшей известной программы.
Наливные полимерные полы, промышленные полы, садовые дорожки. . Оптимизация учета, а также автоматизация управления - главная деталь деятельности производства