#D0987. 删掉一个数

删掉一个数

题目描述

给出一排 nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n。Tom 想删掉其中一个数,看看剩下的数能不能“左右平衡”。

删掉一个数后,把剩下的数按新顺序重新编号(从 11 开始)。如果编号为奇数的那些数之和,恰好等于编号为偶数的那些数之和,就称这次删除是成功的。

请你找出所有能成功删除的位置,位置用原来的编号 1∼n1\sim n 表示。

输入格式

第一行一个整数 nn。

第二行 nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n,相邻两个整数之间用一个空格隔开。

输出格式

如果没有任何成功删除的位置,输出一行一个整数 00。

否则输出两行:第一行一个整数,表示成功删除的位置个数;第二行从小到大输出所有成功删除的位置,相邻两个整数之间用一个空格隔开。

样例

4
1 4 2 3
1
3
3
2 2 2
3
1 2 3
3
1 2 3
0
1
5
1
1

样例解释

样例 1 中,删除第 33 个数后剩 [1,4,3][1,4,3],奇数位置之和 1+3=41+3=4,偶数位置之和 44,相等;删其他位置都不相等,所以只有位置 33。

样例 2 中,删掉任意一个数后都剩 [2,2][2,2],奇数位置之和与偶数位置之和都是 22,三个位置都可行。

样例 3 中,无论删掉哪一个数,剩下的两数或三数都无法让两段和相等,所以方案数为 00。

样例 4 中,删掉唯一的数后没有剩余元素,两段和都为 00,因此位置 11 可行。

数据范围与约定

子任务 分值 限制
11 4040 1≤n≤20001\le n\le 2000,1≤ai≤1041\le a_i\le 10^4
22 6060 1≤n≤2×1051\le n\le 2\times 10^5,1≤ai≤1041\le a_i\le 10^4

对于 100%100\% 的数据,1≤n≤2×1051\le n\le 2\times 10^5,1≤ai≤1041\le a_i\le 10^4。