代码求调
查看原帖
代码求调
733140
zwyyy楼主2023/8/19 12:37
#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
char s[N];
int main(){
	int t, n;
	scanf("%d", &t);
	for(int i = 1; i <= t; ++i){
		memset(s, '0', sizeof(s));
		scanf("%d%s", &n, s);
		int jl = -1;
		int len = strlen(s), ans = 0;
		for(int j = 0; j < len; ++j){
			if(s[j] == '1'){
				if(jl == -1)	jl = j;
				++ans;
			}
		}
		if(ans % 2 == 1)	printf("-1\n");
		else{
			if(n == 3 && ((s[0] == '1' && s[1] == '1' && s[2] == '0') || (s[0] == '0' && s[1] == '1' && s[2] == '1')))	printf("-1\n");
			else if(n == 4 && s[1] == '1' && s[2] == '1'){printf("3\n");}
			else if(ans == 2 && s[jl] == '1' && s[jl + 1] == '1'){printf("2\n");}
			else{
				printf("%d\n", ans / 2);
			}
		}
	}
	return 0;
}

过了样例,自己造的数据也都对

2023/8/19 12:37
加载中...