P15956 [ICPC 2018 Jakarta R] Popping Balloon

题目描述

阿玉正在参加 ABC 2018(排列方块竞赛)。在本次比赛中,每位参赛者有 $M$ 分钟的时间,需要按给定顺序依次完成 $N$ 项任务。解题数量最多的参赛者获胜。让 ICPC 参赛者感到有趣的是,这场比赛采用了与 ICPC 类似的激励机制,即气球。具体来说,参赛者每解决一道任务,就会获得一个气球。 阿玉确信她能击败除某一位特定参赛者之外的所有人,那个人就是她的竞争对手布迪。阿玉清楚自己的技能,即她确切知道自己解决某道任务需要多长时间。不出所料,阿玉也清楚布迪的技能(他们是对手是有原因的)。给定两个整数数组 $A_{1..N}$ 和 $B_{1..N}$。$A_i$ 表示阿玉解决第 $i$ 道任务所需的时间(以分钟为单位),而 $B_i$ 表示布迪解决第 $i$ 道任务所需的时间。 有趣的部分来了。阿玉知道布迪对任何干扰性的响声(比如气球爆裂的声音)都非常敏感。每当布迪受到惊吓(由于气球爆裂),他就会失去专注力,必须重新开始正在做的任务。例如,假设布迪需要 10 分钟完成某道任务。如果气球在第 7 分钟爆裂,那么布迪会在第 7 分钟(在他的 10 分钟计时内)重新开始该任务,导致他完成该任务需要 $7 + 10 = 17$ 分钟。如果有两个气球分别在 7 分钟和 13 分钟爆裂,那么布迪会在第 7 分钟(在他的 10 分钟计时内)重新开始任务,然后在第 6 分钟(在他的 10 分钟计时内)再次重新开始,最终完成该任务需要 $7 + 6 + 10 = 23$ 分钟。如果气球在布迪本该完成任务的那一刻(即在这个例子中的第 10 分钟)爆裂,那么布迪也无法完成该任务。因此,在这种情况下,布迪需要再花 10 分钟(总共 $10 + 10 = 20$ 分钟)来完成该任务。 阿玉打算利用布迪的这一弱点来击败他,即阿玉会有策略地使用她从完成任务中获得的气球(在整数分钟时爆裂气球)。本题的任务是判断阿玉能否让她的解题数量严格大于布迪的解题数量。如果可能,你应该输出一个可行的方案,说明她应该在何时爆裂气球。 请注意,如果阿玉在第 $M$ 分钟恰好完成一道任务,则该任务视为已解决。同样,如果布迪在第 $M$ 分钟恰好完成一道任务,则该任务也视为已解决,除非阿玉决定在同一时间爆裂气球。此外,阿玉一收到气球就可以将其爆裂。阿玉不能在同一分钟内爆裂多个气球。她也不能在第 $M$ 分钟结束后爆裂任何气球。

输入格式

输入的第一行包含两个整数:$N$ 和 $M$($1 \leq N \leq 100000$;$1 \leq M \leq 10^9$),分别表示任务数量和比赛时长。第二行包含 $N$ 个整数 $A_i$($1 \leq A_i \leq 10^9$),表示阿玉解决第 $i$ 道任务所需的时间。第三行包含 $N$ 个整数 $B_i$($1 \leq B_i \leq 10^9$),表示布迪解决第 $i$ 道任务所需的时间。

输出格式

如果阿玉不可能通过 **严格** 多于布迪的解题数量来赢得比赛,只需输出一行 $-1$。否则,第一行输出一个整数 $K$,表示阿玉需要爆裂的气球数量。第二行输出 $K$ 个整数(每个整数之间用一个空格分隔),按 **递增顺序** 排序,表示阿玉应该爆裂气球的分钟数。你可以输出任意有效配置,只要满足:阿玉在爆裂气球时 **至少有一个气球**,阿玉没有在比赛结束后爆裂气球,阿玉没有在同一分钟内爆裂多个气球,并且该配置使得阿玉的解题数量大于布迪的解题数量。

说明/提示

**样例输入 #1 的解释** 阿玉在第 9 分钟获得第一个气球,而此时布迪已经完成了第一道任务(在第 4 分钟),正在做他的第二道任务,还需要 5 分钟(预计在第 14 分钟完成)。阿玉在 12 分钟爆裂第一个气球,即布迪完成第二道任务前 2 分钟,导致布迪重新开始第二道任务。现在布迪完成第二道任务的预计时间为 22 分钟。在第 19 分钟,阿玉获得第二个气球并立即爆裂,导致布迪再次重新开始第二道任务。现在布迪完成第二道任务的预计时间为 29 分钟。在第 29 分钟,阿玉获得第三个气球,与此同时布迪也完成了第二道任务。比赛在 30 分钟结束。总计阿玉解决了 3 道任务,而布迪只解决了 2 道任务。 **样例输入 #3 的解释** 阿玉无法在比赛期间完成第一道任务,因此她没有气球可用。 翻译由 DeepSeek V3.2 完成