CF1515C.Phoenix and Towers
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Phoenix has n blocks of height h1,h2,…,hn, and all hi don't exceed some value x. He plans to stack all n blocks into m separate towers. The height of a tower is simply the sum of the heights of its blocks. For the towers to look beautiful, no two towers may have a height difference of strictly more than x.
Please help Phoenix build m towers that look beautiful. Each tower must have at least one block and all blocks must be used.
凤凰有 n 个高度分别为 h1,h2,…,hn 的方块,且所有 hi 均不超过某个值 x。他计划将全部 n 个方块堆成 m 座独立的塔。一座塔的高度即为其所含方块高度之和。为使这些塔看起来美观,任意两座塔的高度差严格不得超过 x。
请帮助凤凰建造 m 座美观的塔。每座塔至少需包含一个方块,且所有方块都必须被使用。
输入格式
The input consists of multiple test cases. The first line contains an integer t (1≤t≤1000) — the number of test cases.
The first line of each test case contains three integers n, m, and x (1≤m≤n≤105; 1≤x≤104) — the number of blocks, the number of towers to build, and the maximum acceptable height difference of any two towers, respectively.
The second line of each test case contains n space-separated integers (1≤hi≤x) — the heights of the blocks.
It is guaranteed that the sum of n over all the test cases will not exceed 105.
输入包含多个测试用例。第一行包含一个整数 t(1≤t≤1000),表示测试用例的数量。
每个测试用例的第一行包含三个整数 n、m 和 x(1≤m≤n≤105;1≤x≤104),分别表示方块的数量、需建造的塔的数量,以及任意两座塔之间可接受的最大高度差。
每个测试用例的第二行包含 n 个以空格分隔的整数(1≤hi≤x),表示各块的高度。
保证所有测试用例中 n 的总和不超过 105。
输出格式
For each test case, if Phoenix cannot build m towers that look beautiful, print NO. Otherwise, print YES, followed by n integers y1,y2,…,yn, where yi (1≤yi≤m) is the index of the tower that the i-th block is placed in.
If there are multiple solutions, print any of them.
对于每个测试用例,如果凤凰无法建造 m 座美观的塔,则输出 NO。否则,输出 YES,然后输出 n 个整数 y1,y2,…,yn,其中 yi(1≤yi≤m)表示第 i 个方块所放置的塔的编号。
如果存在多种解法,输出任意一种即可。
输入输出样例
输入#1
2 5 2 3 1 2 3 1 2 4 3 3 1 1 2 3
输出#1
YES 1 1 1 2 2 YES 1 2 2 3
说明/提示
In the first test case, the first tower has height 1+2+3=6 and the second tower has height 1+2=3. Their difference is 6−3=3 which doesn't exceed x=3, so the towers are beautiful.
In the second test case, the first tower has height 1, the second tower has height 1+2=3, and the third tower has height 3. The maximum height difference of any two towers is 3−1=2 which doesn't exceed x=3, so the towers are beautiful.
在第一个测试用例中,第一座塔的高度为 1+2+3=6,第二座塔的高度为 1+2=3。它们的高度差为 6−3=3,未超过 x=3,因此这些塔是优美的。
在第二个测试用例中,第一座塔的高度为 1,第二座塔的高度为 1+2=3,第三座塔的高度为 3。任意两座塔之间的最大高度差为 3−1=2,未超过 x=3,因此这些塔是优美的。
输入解题思路,AI测评打分。不知道怎么写?