#N1004. 跷跷板

跷跷板

题目背景

小明正在和他的伙伴们玩跷跷板。
这个跷跷板很特别:跷跷板上一共有 nn 个座位,你可以任选一个座位作为这个跷跷板的支点,而被选作支点的这个座位就不能坐人了。小明和他的伙伴们加在一起正好有 nn 个人,而作为其中最——大方的人,小明自愿坐在中间的位置当作支点。
可是,问题很快就来了:每个伙伴的体重都不一样,如果要让跷跷板保持平衡,应该选中哪一个位置作为支点呢?

题目描述

给定一个长度为 nn 的整数数组表示跷跷板,其中 aia_i 表示第 ii 个小伙伴的体重。现在请你在这个跷跷板上找到一个位置 kk 当作支点,使得在支点左边所有小伙伴的体重之和 等于 在支点右侧所有小伙伴的体重之和(不包含小明的体重)。 如果存在多个方案,输出支点在最左边的一个;
如果不存在一个方案能让跷跷板平衡,请输出 1-1

输入格式

本题采用多组数据测评。
一开始先输入一个整数 tt,表示测试数据组数。
对于每组测试数据,第一行输入一个整数 nn,表示跷跷板长度。
第二行输入 nn 个整数,表示小明的伙伴们的体重。

输出格式

对于每组数据,输出一个整数,表示支点的位置(下标从 00 开始计算)。如果没有符合条件的支点,输出 1-1

输入输出样例

2
3
1 2 1
5
1 2 3 2 10
1
-1

说明/提示

样例 #1 解释

样例 #1 的第一个数据中,可以选择位置 11 的位置作为支点,那么左右两边小伙伴的总重量都为 11,符合题目条件。

数据范围与约定

数据保证:
1n1021≤n≤10^2
103ai103-10^3≤a_i≤10^3

题目更新

  • 2026-1-10:修复了测试点 #2 无法通过的问题
  • 2026-1-11:对题目内容进行了部分修改
  • 2026-1-17:扩大了测试点数据范围,采用多组数据
  • 2026-1-18:修复了测试点 #4 无法通过的问题