#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd() ({long _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define wt(v) {ulong _z=v;do*--wp=_z%10+48;while(_z/=10);} typedef unsigned long ulong; int main(){ char*mmap(); char*rp=mmap(0l,1l<<25,1,2,0,0ll); long n=rd(); long x=n/2; long y0=0,y1=0; long b0=0,b1=0; long a=0,i=0; for(long c;c=*rp++;){ c-='0'; if(c<0){ if(a>x){ ++b0; ++b1; } if(i&1){ --b1; }else{ --b0; } y0+=b0<0?-b0:b0; y1+=b1<0?-b1:b1; y1=y1