Автор: | И. Туфанов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Однажды учитель физкультуры решил провести на уроке новое упражнение. Ученики выполняют упражнение в парах. При этом важно, чтобы рост учеников в паре отличался не более чем на k сантиметров.
Учитель построил перед собой класс из n учеников. Однако выяснилось, что ребята встали не по росту, а в некотором произвольном порядке. Не желая тратить время на перепостроение, учитель решил действовать по следующему алгоритму. Он находит в строю пару стоящих рядом учеников, рост которых отличается не более чем на k сантиметров и отправляет их выполнять упражнение. Это действие учитель повторяет до тех пор, пока такие пары существуют. Если таких пар нет, оставшиеся в строю ученики отправляются играть в волейбол.
Помогите учителю выбрать пары таким образом, чтобы их получилось как можно больше.
В первом примере имеется 7 учеников. Учитель может вызвать учеников 2 и 3 (их рост 175 и 170, разница не превосходит k = 5), после чего они выйдут из строя, и останутся ученики с номерами 1, 4, 5, 6, 7. Вторую пару составляют ученики 1 и 4, имеющие нулевую разницу в росте (рост обоих равен 180). Ученики с номерами 5 и 7 имеют один и тот же рост 200, но учитель не может их вызвать, поскольку они стоят не рядом друг с другом. Если бы учитель вызвал сначала учеников 1 и 2, то оставшиеся ученики не смогли бы образовать ни одной пары.
Рекомендуется рассмотреть следующие частные случаи:
Во начале входного файла записаны целые числа n и k. Далее следует n целых чисел hi. Число hi обозначает рост ученика, стоящего в строю i-ым.
Первым числом выходного файла должно быть количество найденных пар p. Далее должно следовать p пар чисел, обозначающих исходные номера учеников, отправляющихся выполнять упражнение, в порядке их вызова учителем.
1 ≤ n ≤ 500;
100 ≤ hi ≤ 300;
0 ≤ k ≤ 200;
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|