社区讨论
70分求助
P1114“非常男女”计划参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo1avg5e
- 此快照首次捕获于
- 2023/10/22 18:02 2 年前
- 此快照最后确认于
- 2023/11/02 18:20 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,ans=2,a[100001],na[100001],wo[100001],z[100001],ansl,w,w1;
map<int,int>q;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
na[i]=na[i-1];wo[i]=wo[i-1];
if(a[i])na[i]+=1;
else wo[i]+=1;
z[i]=na[i]-wo[i];
if(!q[z[i]])q[z[i]]=i;
else ans=max(ans,i-q[z[i]]);
}
cout<<ans<<endl;
//for(int i=1;i<=n;i++)cout<<i<<' '<<z[i]<<'\n';
return 0;
}
总体就是如果数列中两个位置s男-s女相等,那么中间的男生和女生数量就要相等。
大佬帮帮忙!
回复
共 2 条回复,欢迎继续交流。
正在加载回复...