Чтобы содержать свое поле в идеальном состоянии, Пете необходимо иногда поливать его. Чтобы полить поле, Пете необходимо ровно V мл воды.
Также у Пети есть N емкостей, i-я первоначально заполнена на ai мл. Емкости достаточно большие и любая из них позволяет хранить в себе любой объем воды.
Чтобы переливать воду между емкостями, у Пети имеется ковш объемом K мл. Данным ковшом можно зачерпывать воду из одной емкости и выливать в какую-то емкость (нельзя зачерпнуть воду одновременно из нескольких емкостей, и выливать ее необходимо полностью). При этом зачерпнуть можно min(v, K), где v — текущий объем воды в выбранной емкости.
Можно ли с помощью данного ковша получить в одной из емкостей объем, строго равный V? Если возможно, выведите необходимую последовательность операций. Если способов получить искомый объем несколько — выведите любой.
В первой строке заданы 3 целых числа: N (2 ≤ N ≤ 5000), K (1 ≤ K ≤ 5000) и V (0 ≤ V ≤ 109) — количество емкостей, объем ковша и требуемый объем воды в емкости, соответственно.
В следующей строке задано N целых чисел ai (0 ≤ ai ≤ 105), где ai — первоначальный объем воды в i-й емкости.
Если невозможно получить объем V, выведите NO.
В противном случае выведите в первой строке YES, а далее со следующей строки операции в следующем формате:
В каждой строке по 3 числа — описание очередной сжатой операции: «cnt x y» (1 ≤ cnt ≤ 109, 1 ≤ x, y ≤ N), где x — номер емкости, откуда надо черпать, y — номер емкости, куда выливать, а cnt — количество операций «перелить воду из емкости x в емкость y».
Количество строк со сжатыми операциями не должно превышать N + 5.
2 3 5
2 3
YES
1 2 1
2 3 4
2 3
NO
5 2 0
1 3 5 7 9
YES
2 2 1
3 3 1
4 4 1
5 5 1
Название |
---|