#P2. 随机序列 (random)
随机序列 (random)
题目描述
按如下方式生成两个长为 且和为 的非负整数序列 :
int seq[n+1]; //seq[1],seq[2],...,seq[n] 为生成的序列
int sum = 1e9;
for(int i=1;i<n;i++)
{
int R=sum/(n-i+1)*2;
seq[i]=random(0,R); // 在 0 到 R 之间均匀随机选择一个整数作为 seq[i]
sum-=seq[i];
}
seq[n]=sum;
你会看到一个长度为 的序列 ,其中 是由序列 拼接起来后随机打乱得到的。
你需要在序列 中选出一些数 (不必恰好为 个数) ,满足这些数的和为 。
输入格式
第一行一个正整数 ,保证它为偶数,且 。
第二行 个非负整数 ,表示序列 。
输出格式
输出仅一行, 第一个数是一个正整数 ,表示你选出的数的数量,然后跟着 个正整数 ,表示你选出来的下标,你需要保证 。
如有多组解,输出任意一组均可。
样例
样例输入
10
386413329 88494216 245947398 316438989 192751270 204627269 65749456 3938400 150458676 345180997
样例输出
5 2 3 4 8 10
数据范围与约定
对于所有数据,有:
- 是偶数
本题共 个测试点,第 个测试点满足 。
京公网安备 11011102002149号