TELE

  • Телеметрическая система
    TELE

Для космического корабля сконструирована телеметрическая система, содержащая N  (1£N£1000) групп датчиков. Каждая из этих групп включает Pi (1<Pi) датчиков. Группе датчиков соответствует свой канал связи, к которому в конкретный момент времени может быть подключен только один датчик этой группы, который назовем активным.

С центрального пульта на систему могут подаваться команды управления. Каждая команда управления имеет вид: {<номер группы>, «следующий / предыдущий»}. При этом номер активного датчика в соответствующей группе увеличится или уменьшится на единицу. Попытка установить номер активного датчика в группе вне пределов [1..Pi] ведет к аварийному останову контроллера. В исходном состоянии для каждой из групп известен номер активного датчика.
Для комплексной проверки корабля требуется проводить съем показаний для всех возможных комбинаций активных датчиков, причем повторять уже использованные ранее комбинации активных датчиков запрещается. Общее количество комбинаций активных датчиков не превосходит 10000.После окончания проверки система должна оказаться в исходном состоянии.

Требуется разработать программу TELE, которая осуществляла бы управление контроллером, реализующее требуемый опрос датчиков.

Технические характеристики:

Входной файл: TELE.IN
Входной файл: TELE.OUT
Ограничение по времени: 5 секунд на тест
Максимальная оценка: 35 баллов

Входные данные:
Входной файл с именем
TELE.IN содержит следующие три строки. Первая строка содержит число N – количество групп датчиков. Вторая строка содержит N чисел P1, P2, … , PN, каждое из которых задает количество датчиков в соответствующей группе. Третья строка содержит N исходных номеров активных датчиков в группах. Числа во второй и третьей строках разделены пробелом.

Выходные данные:
Выходной файл с именем
TELE.OUT должен содержать следующие строки. В первую строку выводится сообщение “Yes” или “No” в зависимости от того, возможно или нет реализовать управление контроллером, осуществляющее требуемую схему съема данных. При выводе сообщения “Yes” в последующих строках выдается последовательность команд управления. Каждая строка содержит по одной команде вида: <номер группы> <пробел> <знак “+” или “–“>. При этом знак “+” соответствует увеличению на 1, а знак “–” – уменьшению на 1 номера активного датчика в этой группе.

Пример:

TELE.IN
2
2 3
2 1

TELE.OUT 
Yes
1 –
2 +
2 +
1 +
2 –
2 –
 

Примечание
: отдельно оцениваються решения для частных случаев для N=1, N=2, N=3