AT_wtf19_a.Magic

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

魔术师在表演,现在他有 N(2≤N≤50)N(2 \leq N \leq 50) 个箱子,其中一个有宝藏。魔术师会随机打乱这些箱子,此后箱子顺序不变,你的任务是在这 NN 个箱子中找到有宝藏的那个。

但是,在你找宝藏的过程中,会有一些特殊的限制和操作:

  • 你只能一个箱子一个箱子打开,且打开一个箱子后必须在打开另外一个之前关闭它。

  • 每一个箱子最多能打开 ai(1≤ai≤100)a_i(1 \leq a_i \leq 100) 次。

  • 魔术师会在你找宝藏的过程中最多做 K(1≤K≤50)K(1 \leq K \leq 50) 后文所述的操作:除了在你正在打开箱子的时候,他可能会将宝藏从一个箱子移动到另外一个箱子中。也就是说,他可能会在你打开一个箱子之前、关闭一个箱子并打开下一个中间这段时间这两种情况中移动宝藏位置。

请输出一种方案,确保你能找到宝藏,如果没有这样的方案,输出 -1。

否则,第一行输出一行一个正整数 QQ 表示打开箱子顺序的总长度(即你打开箱子的总次数)。

第二行输出一行 QQ 个正整数,表示你的打开箱子顺序。

输入格式

第一行两个正整数 NN 和 KK 分别表示箱子个数和魔术师能移动宝藏的次数。

第二行输入 NN 个正整数 aia_i 表示每个箱子你最多能打开的次数。

输入输出样例

  • 输入#1

    2 1
    5 5

    输出#1

    7
    1 1 2 1 2 2 1
  • 输入#2

    3 50
    5 10 15

    输出#2

    -1

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

首页