3 条题解

  • 0
    @ 2023-8-24 0:25:41
    #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;
    }
    

    信息

    ID
    141
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    7
    已通过
    1
    上传者