3 条题解
-
0
仅供参考
#include <bits/stdc++.h> using namespace std; int l[200010],r[200010],sum1,sum0,ans,n; int main() { cin>>n; for (int i=1;i<=n;i++){ int x; cin>>x; sum1+=(x==1), sum0+=(x==0); int t=sum0-sum1+n; if (!l[t]&&t!=n) l[t]=i; else r[t]=i; } for (int i=0;i<=2*n;i++) ans=max(ans,r[i]-l[i]); cout<<ans<<endl; return 0; }
-
0
#include<iostream> using namespace std; int q[100010],num[200010][2],pan[200010]; int main() { int n,i,a,ans=0; cin>>n; pan[100000]=1; q[0]=100000; for(i=1;i<=n;i++) { cin>>a; if(a) q[i]=q[i-1]+1; else q[i]=q[i-1]-1; if(!pan[q[i]]) { num[q[i]][0]=i; pan[q[i]]=1; } else num[q[i]][1]=i; } for(i=0;i<=200000;i++) ans=max(ans,num[i][1]-num[i][0]); cout<<ans; return 0; }
- 1
信息
- ID
- 141
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 7
- 已通过
- 1
- 上传者