4642: 【GESP2409三级】平衡序列

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:9 解决:5

题目描述

⼩杨有⼀个包含$n$个正整数的序列 $a$,他认为一个序列是平衡的当且仅当存在一个正整数$i$ ($1\le i < n$ )使得序列第$1$个到第$i$ 个数字的总和等于第$i+1$ 个到第$n$ 个数字的总和。
小杨想请你判断序列$a$ 是否是平衡的。

输入

第一行包含一个正整数$t$ ,代表测试用例组数。
接下来是$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";
    }
}