CF1516A.Tit for Tat
入门
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Given an array a of length n, you can do at most k operations of the following type on it:
- choose 2 different elements in the array, add 1 to the first, and subtract 1 from the second. However, all the elements of a have to remain non-negative after this operation.
What is lexicographically the smallest array you can obtain?
An array x is lexicographically smaller than an array y if there exists an index i such that xi<yi, and xj=yj for all 1≤j<i. Less formally, at the first index i in which they differ, xi<yi.
给定一个长度为 n 的数组 a,你最多可以对其执行 k 次如下类型的操作:
- 在数组中选择 两个不同的元素,将第一个元素加 1,第二个元素减 1。但该操作后,数组 a 中所有元素必须仍保持 非负。
你能得到的字典序最小的数组是什么?
数组 x 被称为字典序小于(lexicographically smaller)数组 y,当且仅当存在某个下标 i,使得 xi<yi,且对所有满足 1≤j<i 的 j 都有 xj=yj。更直观地说,即在 x 与 y 首次出现差异的下标 i 处,有 xi<yi。
输入格式
The first line contains an integer t (1≤t≤20) – the number of test cases you need to solve.
The first line of each test case contains 2 integers n and k (2≤n≤100, 1≤k≤10000) — the number of elements in the array and the maximum number of operations you can make.
The second line contains n space-separated integers a1, a2, …, an (0≤ai≤100) — the elements of the array a.
第一行包含一个整数 t(1≤t≤20)——表示你需要求解的测试用例数量。
每个测试用例的第一行包含两个整数 n 和 k(2≤n≤100,1≤k≤10000)——分别表示数组中的元素个数以及你最多可执行的操作次数。
每个测试用例的第二行包含 n 个以空格分隔的整数 a1、a2、…、an(0≤ai≤100)——表示数组 a 的元素。
输出格式
For each test case, print the lexicographically smallest array you can obtain after at most k operations.
对于每个测试用例,输出经过至多 k 次操作后能得到的字典序最小的数组。
输入输出样例
输入#1
2 3 1 3 1 4 2 10 1 0
输出#1
2 1 5 0 1
说明/提示
In the second test case, we start by subtracting 1 from the first element and adding 1 to the second. Then, we can't get any lexicographically smaller arrays, because we can't make any of the elements negative.
在第二个测试用例中,我们首先将第一个元素减 1,并将 1 加到第二个元素上。此后,我们无法得到字典序更小的数组,因为我们不能使任何元素变为负数。
输入解题思路,AI测评打分。不知道怎么写?