Codeforces Global Round 14 |
---|
Закончено |
У Феникса есть $$$n$$$ блоков высотой $$$h_1, h_2, \dots, h_n$$$, где все $$$h_i$$$ не превосходят некоторого значения $$$x$$$. Он планирует расставить все $$$n$$$ блоков в виде $$$m$$$ башен. Высота башни — это просто сумма высот блоков, из которой она состоит. Для того чтобы башни выглядели красиво, высота никаких двух башен не должна отличаться более, чем на $$$x$$$.
Помогите Фениксу построить $$$m$$$ башен красиво. В каждой башне должно быть хотя бы по одному блоку и все блоки должны быть использованы.
Входные данные состоят из нескольких наборов. В первой строке задано одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных.
В первой строке каждого набора заданы три целых числа $$$n$$$, $$$m$$$ и $$$x$$$ ($$$1 \le m \le n \le 10^5$$$; $$$1 \le x \le 10^4$$$) — количество блоков, количество выстраиваемых башен и максимально разрешенная разность высот между любой парой башен, соответственно.
Во второй строке каждого набора заданы $$$n$$$ целых чисел через пробел ($$$1 \le h_i \le x$$$) — высоты блоков.
Гарантируется, что сумма $$$n$$$ по всем наборам не превосходит $$$10^5$$$.
Для каждого набора входных данных, если Феникс не сможет построить $$$m$$$ башен красиво, выведите NO. В противном случае выведите YES и $$$n$$$ целых чисел $$$y_1, y_2, \dots, y_n$$$, где $$$y_i$$$ ($$$1 \le y_i \le m$$$) — это номер башни, в которую попадет $$$i$$$-й блок.
Если существует несколько решений, выведите любое из них.
2 5 2 3 1 2 3 1 2 4 3 3 1 1 2 3
YES 1 1 1 2 2 YES 1 2 2 3
В первом наборе, первая башня будет высоты $$$1+2+3=6$$$, а вторая — высоты $$$1+2=3$$$. Их разность $$$6-3=3$$$ и не превосходит $$$x=3$$$, поэтому башни красивые.
Во втором наборе, первая башня будет высоты $$$1$$$, вторая — $$$1+2=3$$$ и третья — $$$3$$$. Максимальная разность между любой парой башен равна $$$3-1=2$$$, что не превосходит $$$x=3$$$, поэтому башни красивые.
Название |
---|