求助,(也许是站外题?)
  • 板块灌水区
  • 楼主jiuxiao666
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/12/26 13:59
  • 上次更新2024/12/26 20:17:58
查看原帖
求助,(也许是站外题?)
1486303
jiuxiao666楼主2024/12/26 13:59
问题描述
在一条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;
}

现在就是超时不知道咋搞

2024/12/26 13:59
加载中...