n = int(input())
s = input()
for i in range(1,n):
count = sum([int(j) for j in s[:i]])
numbers = [s[:i]]
counter = 0
for j in s[i:]:
if counter + int(j) < count: counter += int(j)
elif counter + int(j) == count : counter = 0
else:
counter = 1
break
if counter == 0:
if s[i:].count("0") == len(s[i:]) and s.count("0") != len(s):
print("NO")
quit()
print("YES")
quit()
print("NO")
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n; cin>>n;
string s; cin>>s;
bool flag = false;
int sum = 0;
for(int i=0; i<n; i++)
{
sum += s[i]-'0';
if(i<n-1 && s[i] == '0') continue;
int rSum=0, j=i+1;
while(true)
{
while(j<n && (s[j]=='0' || rSum<sum)) rSum += s[j++]-'0';
if(rSum != sum) break;
else
{
if(j == n) flag = true;
rSum = 0;
if(flag) break;
}
}
}
cout<<(flag? "YES": "NO");
return 0;
}
1632C - Strange Test | 673A - Bear and Game |
276A - Lunch Rush | 1205A - Almost Equal |
1020B - Badge | 1353A - Most Unstable Array |
770A - New Password | 1646B - Quality vs Quantity |
80A - Panoramix's Prediction | 1354B - Ternary String |
122B - Lucky Substring | 266B - Queue at the School |
1490A - Dense Array | 1650B - DIV + MOD |
1549B - Gregor and the Pawn Game | 553A - Kyoya and Colored Balls |
1364A - XXXXX | 1499B - Binary Removals |
1569C - Jury Meeting | 108A - Palindromic Times |
46A - Ball Game | 114A - Cifera |
776A - A Serial Killer | 25B - Phone numbers |
1633C - Kill the Monster | 1611A - Make Even |
1030B - Vasya and Cornfield | 1631A - Min Max Swap |
1296B - Food Buying | 133A - HQ9+ |