#630. 平衡下标

平衡下标

平衡下标

故事背景

你在搭建一条展示长廊,两侧摆放的装饰品重量需要尽量保持平衡。对于一排物品,如果某个位置作为“支点”,支点左侧的总重量恰好等于右侧的总重量,那么这个位置就是理想的平衡点。请找出所有这样的平衡位置,便于选择最佳支点。

题目描述

给定一个长度为 n 的整数数组 a。如果某个位置 i(1 ≤ i ≤ n)满足:其左侧元素之和等于右侧元素之和,即

sum(a[1..i-1]) = sum(a[i+1..n]),

则称 i 为“平衡下标”。请你找出所有平衡下标。

输入格式

第一行包含一个整数 n,表示数组长度。 第二行包含 n 个整数,表示数组 a 的元素。

输出格式

第一行输出一个整数 k,表示平衡下标的个数。 如果 k > 0,则第二行输出 k 个递增的下标(1 基),用空格分隔。

输入输出样例 #1

输入 #1

5
1 2 3 1 2

输出 #1

1
3

样例解释 #1

下标 3 左侧之和为 1+2=3,右侧之和为 1+2=3,相等。

说明/提示

  • 数据范围:1 ≤ n ≤ 2×10^5;-10^9 ≤ a_i ≤ 10^9。