CF1513A.Array and Peaks
入门
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A sequence of n integers is called a permutation if it contains all integers from 1 to n exactly once.
Given two integers n and k, construct a permutation a of numbers from 1 to n which has exactly k peaks. An index i of an array a of size n is said to be a peak if 1<i<n and ai>ai−1 and ai>ai+1. If such permutation is not possible, then print −1.
一个包含 n 个整数的序列被称为排列,当且仅当它恰好包含从 1 到 n 的所有整数各一次。
给定两个整数 n 和 k,请构造一个由 1 到 n 组成的排列 a,使得该排列恰好有 k 个峰。对于长度为 n 的数组 a,若下标 i 满足 1<i<n,且 ai>ai−1 与 ai>ai+1 同时成立,则称 i 是一个峰。如果不存在满足条件的排列,则输出 −1。
输入格式
The first line contains an integer t (1≤t≤100) — the number of test cases.
Then t lines follow, each containing two space-separated integers n (1≤n≤100) and k (0≤k≤n) — the length of an array and the required number of peaks.
第一行包含一个整数 t(1≤t≤100)—— 测试用例的数量。
接下来是 t 行,每行包含两个以空格分隔的整数 n(1≤n≤100)和 k(0≤k≤n)—— 分别表示数组的长度以及所需的峰的数量。
输出格式
Output t lines. For each test case, if there is no permutation with given length and number of peaks, then print −1. Otherwise print a line containing n space-separated integers which forms a permutation of numbers from 1 to n and contains exactly k peaks.
If there are multiple answers, print any.
输出 t 行。对于每个测试用例,若不存在满足给定长度和峰的数量的排列,则输出 −1;否则输出一行包含 n 个以空格分隔的整数,这些整数构成 1 到 n 的一个排列,且恰好包含 k 个峰。
若存在多个合法答案,输出任意一个即可。
输入输出样例
输入#1
5 1 0 5 2 6 6 2 1 6 1
输出#1
1 2 4 1 5 3 -1 -1 1 3 6 5 4 2
说明/提示
In the second test case of the example, we have array a=[2,4,1,5,3]. Here, indices i=2 and i=4 are the peaks of the array. This is because $(a_{2} \gt a_{1} $, a2>a3) and (a4>a3, a4>a5).
在示例的第二个测试用例中,我们有数组 a=[2,4,1,5,3]。其中,下标 i=2 和 i=4 是该数组的峰值。这是因为 $(a_{2} \gt a_{1} $, a2>a3) 且 (a4>a3, a4>a5)。
输入解题思路,AI测评打分。不知道怎么写?