#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int a[105];
int len = 0;
int main(int argc, char** argv) {
int n;
cin >> n;
string s;
cin >> s;
if(s.size() > 10) {
cout << "YES" << endl;
return 0;
}
for(auto x : s) a[++len] = x - '0';
int res = 0;
for(int i = 1; i <= len; i++) {
int sum1 = 0;
for(int j = i; j <= len; j++) {
sum1 += a[j];
for(int x = j + 1; x <= len; x++) {
int sum2 = 0;
for(int y = x; y <= len; y++) {
sum2 += a[y];
if(sum1 == sum2) res = 1;
}
}
}
}
if(res) cout << "YES" << endl;
else cout << "NO" << endl;
return 0;
}
看了题解也不太明白 呜呜呜~~~
抽屉原理
#include<iostream>
#include<string>
using namespace std;
int a[20];
int main()
{
int n;
string s;
cin>>n;
if(n>10)
{
cin>>s;
cout<<"YES"<<endl;
}
else
{
int t=0;
cin>>s;
for(int i=0;i<n;i++) a[i]=s[i]-'0';
for(int i=1;i<n;i++)
for(int j=0;j<i;j++) if(a[i]==a[j]) t=1;
for(int i=2;i<n-1;i++)
for(int j=0;j<i;j++) if(a[i]+a[i+1]==a[j]+a[j+1]) t=1;
for(int i=3;i<n-2;i++)
for(int j=0;j<i;j++) if(a[i]+a[i+1]+a[i+2]==a[j]+a[j+1]+a[j+1]) t=1;
for(int i=4;i<n-3;i++)
for(int j=0;j<i;j++) if(a[i]+a[i+1]+a[i+2]+a[i+3]==a[j]+a[j+1]+a[j+2]+a[j+3]) t=1;
if(n==10&&a[0]+a[1]+a[2]+a[3]+a[4]==a[5]+a[6]+a[7]+a[8]+a[9]) t=1;
if(t) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
听了凯哥的和讲解明白了
so~easy