4642: 【GESP2409三级】平衡序列
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:9
解决:5
题目描述
⼩杨有⼀个包含$n$个正整数的序列 $a$,他认为一个序列是平衡的当且仅当存在一个正整数$i$ ($1\le i < n$ )使得序列第$1$个到第$i$ 个数字的总和等于第$i+1$ 个到第$n$ 个数字的总和。
小杨想请你判断序列$a$ 是否是平衡的。
小杨想请你判断序列$a$ 是否是平衡的。
输入
第一行包含一个正整数$t$ ,代表测试用例组数。
接下来是$t$ 组测试用例。对于每组测试用例,一共两行。
第一行包含一个正整数$n$ ,代表序列长度。
第二行包含$n$ 个正整数,代表序列$a$ 。
接下来是$t$ 组测试用例。对于每组测试用例,一共两行。
第一行包含一个正整数$n$ ,代表序列长度。
第二行包含$n$ 个正整数,代表序列$a$ 。
输出
对于每组测试用例,如果序列$a$ 是否是平衡的,输出
Yes,否则输出 No。
样例输入 复制
3
3
1 2 3
4
2 3 1 4
5
1 2 3 4 5
样例输出 复制
Yes
Yes
No
提示
#include<bits/stdc++.h>
using namespace std;
int a[10010];
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++) {
cin >> a[i];
sum += a[i];
}
int tot = 0, fl = 0;
for (int i = 1; i < n; i++) {
tot += a[i];
if (tot * 2 == sum) {
fl = 1;
break;
}
}
if (fl) cout << "Yes\n";
else cout << "No\n";
}
}