Сайт Андрея Зайчикова
|
|
Аппликатура
Одна из проблем при игре на фортепьяно -- выбор хорошей
аппликатуры, то есть определение для каждого звука мелодии
(клавиши инструмента) пальца руки, которым эту ноту лучше всего
сыграть в данном месте мелодии.
Пронумеруем пальцы пианиста слева направо натуральными числами от 1 до P, клавиши инструмента также пронумеруем слева направо натуральными числами от 1 до K. Тогда запись звуков мелодии можно представить в виде последовательности N номеров клавиш, которые следует нажимать для ее исполнения, где N -- длина мелодии. Пусть для каждой пары пальцев с номерами i и j заданы целые числа a_{ij} и b_{ij}, такие, что если палец i нажимает клавишу X, то следующей клавишей пальцем j может быть нажата лишь клавиша из диапазона [X+a_{ij}, X+b_{ij}]. Этот набор чисел a_{ij}, b_{ij}, 1<=i<=P, 1<=j<=P, зависит от особенностей пианиста и его исполнительской техники. Заметим, что не каждая мелодия может быть сыграна конкретным пианистом при указанных выше ограничениях. Hазовем перекладыванием пальцев ситуацию, когда для двух последовательно исполняемых нот мелодии клавиша с большим номером нажимается пальцем с меньшим номером. Требуется написать программу, которая для заданной мелодии определяет аппликатуру с наименьшим количеством перекладываний пальцев.
Ввод:
Вывод:
Пример: 3 10 0 0 -2 -2 -5 1 2 3 8 10 0 1 2 10 -2 -2 -1 -1 9 4 5 7 7 7 6 8 7 5Результат: 3 2 3 1 1 3 3 1 3 2 |
|