送礼物
题号:NC206653
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

XY想给喜欢的女生送礼物,但自从上次圣诞节失败的经历之后,他决定采用一种新的送礼物方法。
他有N天可以送礼物。女生对他的初始好感度为P。在第i天,可以选择是否送出一个好感度为ai的礼物。基于上次失败的经验,他希望每次送出的礼物的好感度要比上一次送出的大,并使送礼物的次数尽可能多。女生对他的最终好感度为初始好感度加上所有送出礼物的好感度之和。
XY想知道按照新的方法,女生对他的最终好感度是多少?并输出按这种方法送出礼物天数的编号。如果有多种送法,选择其字典序编号最大的一个。

输入描述:

第一行给出两个空格分隔的数N,
第二行,给出N个,表示第天的礼物价值,彼此用空格隔开

输出描述:

第一行输出一个数M,表示女生对他的最终好感度
第二行输出一个数K,表示最多送礼物的次数
接下来K行,按字典序每行输出一个当天送出礼物的编号
示例1

输入

复制
5 10
1 3 3 3 5

输出

复制
19
3
1
4
5
示例2

输入

复制
8 -100000
5 4 3 1 2 7 6 7

输出

复制
-99984
4
4
5
7
8