CF2133F.Flint and Steel
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
n 只苦力怕站在你面前,第 i 只苦力怕的爆炸力是 ei,当它爆炸的时候会同时杀死所有位于区间 (i−ei,i+ei) 内的苦力怕。特殊的,当 ei=0 的时候该苦力怕无法被引爆。
现在你要杀死所有的苦力怕,为此你可以进行若干次操作,每次操作选中一只活着的苦力怕并引爆它,求至少需要进行多少次操作才能完成目标。如果可以完成目标,你还需要给出一组合法的引爆顺序。
输入格式
多测,第一行输入 t(1≤t≤104)表示测试数据数量。
对于每组测试数据:
第一行输入一个正整数 n(1≤n≤5×105)。
第二行输入 n 个非负整数 e1,e2,…,en(0≤ei≤n)。
保证单测试点内所有 n 的和不超过 5×105。
输出格式
对于每组测试数据,若无解输出 -1,否则先输出一行一个正整数表示最少操作次数 s;接下来一行输出 s 个正整数,按顺序依次表示一个能将所有苦力怕杀死的引爆顺序。如果有多组解,输出任意一种即可。
输入输出样例
输入#1
5 6 0 2 2 3 0 1 4 0 1 2 3 4 1 1 1 1 5 1 3 1 3 1 9 2 0 2 4 2 2 4 1 1
输出#1
2 2 4 -1 4 2 4 1 3 2 2 5 3 1 7 3
说明/提示
第一组测试数据中,可以按如下顺序引爆:
- 0,2,2,3,0,1
- ×,×,×,3,0,1
- ×,×,×,×,×,×
× 表示被杀死的苦力怕,加粗的位置表示当前引爆的位置,下划线表示引爆范围。请注意如果先引爆第 4 只苦力怕,所有能爆炸的苦力怕都会被杀死,第一只苦力怕就无法被击败。
第二组测试数据中没有一只苦力怕能够杀死第一只。
第五组测试数据中,可以按如下顺序引爆:
- 2,0,2,4,2,2,4,1,1
- ×,×,2,4,2,2,4,1,1
- ×,×,2,×,×,×,×,×,×
- ×,×,×,×,×,×,×,×,×
输入解题思路,AI测评打分。不知道怎么写?