平衡序列
题目描述:小杨有一个包含 n 个正整数的序列 a。他认为一个序列是平衡的当且仅当存在一个正整数 i(1≤i<n)使得序列第 1 到第 i 个数字的总和等于第 i+1 到第 n 个数字的总和。
#include <bits/stdc++.h>
using namespace std;
int a[100001];
long long s[100001];
int main()
{
int t, n;
bool flag;
scanf("%d", &t);
while (t--)
{
flag = false;
scanf("%d", &n);
s[0] = 0;
for (int i = 1; i <= n; i++)
{
scanf("%d", a + i);
s[i] = s[i - 1] + a[i];
}
for (int i = 1; i < n; i++)
{
long long left = s[i] - s[0]; //s[1,i]
long long right = s[n] - s[i];//s[i+1,n]
if (left == right)
{
flag = true;
break;
}
}
if (flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
数组a可不用!
