#include <cstdio>
#include <algorithm>
#define Max(x,y) (x)=max((x),(y))
using namespace std;
int n,a[500005],dp[500005];
char s[500005];
int main(){
	scanf("%d%s",&n,s+1);
	for(int i=1;i<=n;i++){
		a[i]=(s[i]=='0')?i:a[i-1];
	}
	for(int i=1;i<=n;i++){
		dp[i]=dp[i-1];
		if(s[i]=='0')continue;
		if(i>1 && s[i-1]=='0' && s[i-2]=='1')Max(dp[i],max(dp[a[i-2]]+(i-2)-a[i-2],dp[a[i-2]+1]+(i-2)-(a[i-2]+1)));
		else if(a[i]>1 && s[a[i]-1] == '1')Max(dp[i],dp[a[i]-2]+i-a[i]);
	}
	printf("%d\n",dp[n]);
	return 0;
}