#P2. 随机序列 (random)

随机序列 (random)

题目描述

按如下方式生成两个长为 nn 且和为 10910^9 的非负整数序列 a,ba,b

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;

你会看到一个长度为 2n2n 的序列 cc,其中 cc 是由序列 a,ba,b 拼接起来后随机打乱得到的。

你需要在序列 cc 中选出一些数 (不必恰好为 nn 个数) ,满足这些数的和为 10910^9

输入格式

第一行一个正整数 NN,保证它为偶数,且 N=2nN=2n

第二行 NN 个非负整数 c1,c2,,cNc_1,c_2,\cdots,c_N,表示序列 cc

输出格式

输出仅一行, 第一个数是一个正整数 kk,表示你选出的数的数量,然后跟着 kk 个正整数 x1,x2,,xkx_1,x_2,\cdots,x_k,表示你选出来的下标,你需要保证 i=1kcxk=109\sum_{i=1}^k c_{x_k}=10^9

如有多组解,输出任意一组均可。

样例

样例输入

10
386413329 88494216 245947398 316438989 192751270 204627269 65749456 3938400 150458676 345180997

样例输出

5 2 3 4 8 10

数据范围与约定

对于所有数据,有:

  • 2N1002 \le N \le 100
  • NN 是偶数

本题共 1010 个测试点,第 i (1i10)i \space (1 \le i \le 10) 个测试点满足 N=10iN=10i