CF1515C.Phoenix and Towers

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Phoenix has nn blocks of height h1,h2,…,hnh_1, h_2, \dots, h_n, and all hih_i don't exceed some value xx. He plans to stack all nn blocks into mm 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 xx.

Please help Phoenix build mm towers that look beautiful. Each tower must have at least one block and all blocks must be used.

凤凰有 nn 个高度分别为 h1,h2,…,hnh_1, h_2, \dots, h_n 的方块,且所有 hih_i 均不超过某个值 xx。他计划将全部 nn 个方块堆成 mm 座独立的塔。一座塔的高度即为其所含方块高度之和。为使这些塔看起来美观,任意两座塔的高度差严格不得超过 xx。

请帮助凤凰建造 mm 座美观的塔。每座塔至少需包含一个方块,且所有方块都必须被使用。

输入格式

The input consists of multiple test cases. The first line contains an integer tt (1≤t≤10001 \le t \le 1000) — the number of test cases.

The first line of each test case contains three integers nn, mm, and xx (1≤m≤n≤1051 \le m \le n \le 10^5; 1≤x≤1041 \le x \le 10^4) — 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 nn space-separated integers (1≤hi≤x1 \le h_i \le x) — the heights of the blocks.

It is guaranteed that the sum of nn over all the test cases will not exceed 10510^5.

输入包含多个测试用例。第一行包含一个整数 tt(1≤t≤10001 \le t \le 1000),表示测试用例的数量。

每个测试用例的第一行包含三个整数 nn、mm 和 xx(1≤m≤n≤1051 \le m \le n \le 10^5;1≤x≤1041 \le x \le 10^4),分别表示方块的数量、需建造的塔的数量,以及任意两座塔之间可接受的最大高度差。

每个测试用例的第二行包含 nn 个以空格分隔的整数(1≤hi≤x1 \le h_i \le x),表示各块的高度。

保证所有测试用例中 nn 的总和不超过 10510^5。

输出格式

For each test case, if Phoenix cannot build mm towers that look beautiful, print NO. Otherwise, print YES, followed by nn integers y1,y2,…,yny_1, y_2, \dots, y_n, where yiy_i (1≤yi≤m1 \le y_i \le m) is the index of the tower that the ii-th block is placed in.

If there are multiple solutions, print any of them.

对于每个测试用例,如果凤凰无法建造 mm 座美观的塔,则输出 NO。否则,输出 YES,然后输出 nn 个整数 y1,y2,…,yny_1, y_2, \dots, y_n,其中 yiy_i(1≤yi≤m1 \le y_i \le m)表示第 ii 个方块所放置的塔的编号。

如果存在多种解法,输出任意一种即可。

输入输出样例

  • 输入#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=61+2+3=6 and the second tower has height 1+2=31+2=3. Their difference is 6−3=36-3=3 which doesn't exceed x=3x=3, so the towers are beautiful.

In the second test case, the first tower has height 11, the second tower has height 1+2=31+2=3, and the third tower has height 33. The maximum height difference of any two towers is 3−1=23-1=2 which doesn't exceed x=3x=3, so the towers are beautiful.

在第一个测试用例中,第一座塔的高度为 1+2+3=61+2+3=6,第二座塔的高度为 1+2=31+2=3。它们的高度差为 6−3=36-3=3,未超过 x=3x=3,因此这些塔是优美的。

在第二个测试用例中,第一座塔的高度为 11,第二座塔的高度为 1+2=31+2=3,第三座塔的高度为 33。任意两座塔之间的最大高度差为 3−1=23-1=2,未超过 x=3x=3,因此这些塔是优美的。

输入解题思路,AI测评打分。不知道怎么写?

首页