首页 > 代码库 > AC日记——还是01串 51nod 1396

AC日记——还是01串 51nod 1396

还是01串

 

思路:

  前缀和;

 

来,上代码:

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define maxn 1000005int n,sum[maxn];char ch[maxn];int main(){    gets(ch),n=strlen(ch);    for(int i=0;i<n;i++) sum[i]=sum[i==0?0:i-1]+ch[i]-0;    if(sum[n-1]==0)    {        cout<<0;        return 0;    }    for(int i=1;i<n;i++)    {        if(i-sum[i-1]==sum[n-1]-sum[i-1])        {            cout<<i;            return 0;        }    }    if(sum[n-1]==n)    {        cout<<n;        return 0;    }    cout<<-1;    return 0;}

 

AC日记——还是01串 51nod 1396