问题描述
在一条01串中,如果0和1的个数是相同的,我们就称这条01串是平衡的。现在给你一长度为 n
的01串(每个数之间有空格隔开),请你求出子串中,最长的平衡串的长度。
输入格式
2行。 第1行,1个数,表示 n
。 第2行,n
个数,表示01串。
输出格式
一个数。
输入输出样例
输入
9
0 1 0 0 0 1 1 0 0
输出
6
数据范围
1≤n≤10
这是我的代码
#include<iostream>
using namespace std;
int n,m[100000],x,z;
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>m[i];
}
for(int i1=0;i1<n;i1++){
for(int l=i1;l<n;l++){
if(m[l]==1){
x++;//cout<<x<<endl;
}
if(m[l]==0){
x--;//cout<<x<<endl;
}
if(x==0){
if(l-i1+1>z){
z=l-i1+1;//cout<<z<<endl;
}
}
}
//cout<<endl;
x=0;
}
cout<<z;
return 0;
}
现在就是超时不知道咋搞