CF1513A.Array and Peaks

入门

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

A sequence of nn integers is called a permutation if it contains all integers from 11 to nn exactly once.

Given two integers nn and kk, construct a permutation aa of numbers from 11 to nn which has exactly kk peaks. An index ii of an array aa of size nn is said to be a peak if 1<i<n1 \lt i \lt n and ai>ai−1a_i \gt a_{i-1} and ai>ai+1a_i \gt a_{i+1}. If such permutation is not possible, then print −1-1.

一个包含 nn 个整数的序列被称为排列,当且仅当它恰好包含从 11 到 nn 的所有整数各一次。

给定两个整数 nn 和 kk,请构造一个由 11 到 nn 组成的排列 aa,使得该排列恰好有 kk 个峰。对于长度为 nn 的数组 aa,若下标 ii 满足 1<i<n1 \lt i \lt n,且 ai>ai−1a_i \gt a_{i-1} 与 ai>ai+1a_i \gt a_{i+1} 同时成立,则称 ii 是一个峰。如果不存在满足条件的排列,则输出 −1-1。

输入格式

The first line contains an integer tt (1≤t≤1001 \leq t \leq 100) — the number of test cases.

Then tt lines follow, each containing two space-separated integers nn (1≤n≤1001 \leq n \leq 100) and kk (0≤k≤n0 \leq k \leq n) — the length of an array and the required number of peaks.

第一行包含一个整数 tt(1≤t≤1001 \leq t \leq 100)—— 测试用例的数量。

接下来是 tt 行,每行包含两个以空格分隔的整数 nn(1≤n≤1001 \leq n \leq 100)和 kk(0≤k≤n0 \leq k \leq n)—— 分别表示数组的长度以及所需的峰的数量。

输出格式

Output tt lines. For each test case, if there is no permutation with given length and number of peaks, then print −1-1. Otherwise print a line containing nn space-separated integers which forms a permutation of numbers from 11 to nn and contains exactly kk peaks.

If there are multiple answers, print any.

输出 tt 行。对于每个测试用例,若不存在满足给定长度和峰的数量的排列,则输出 −1-1;否则输出一行包含 nn 个以空格分隔的整数,这些整数构成 11 到 nn 的一个排列,且恰好包含 kk 个峰。

若存在多个合法答案,输出任意一个即可。

输入输出样例

  • 输入#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]a = [2,4,1,5,3]. Here, indices i=2i=2 and i=4i=4 are the peaks of the array. This is because $(a_{2} \gt a_{1} $, a2>a3)a_{2} \gt a_{3}) and (a4>a3(a_{4} \gt a_{3}, a4>a5)a_{4} \gt a_{5}).

在示例的第二个测试用例中,我们有数组 a=[2,4,1,5,3]a = [2,4,1,5,3]。其中,下标 i=2i=2 和 i=4i=4 是该数组的峰值。这是因为 $(a_{2} \gt a_{1} $, a2>a3)a_{2} \gt a_{3}) 且 (a4>a3(a_{4} \gt a_{3}, a4>a5)a_{4} \gt a_{5})。

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

首页