Codechef-LEBOMS : Little Elephant and Bombs

問題概要

01のならんだ文字列が与えられる。自マスと隣接マスが0の個数を数える問題。

acceptされたコード

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;

const int MAX_N = 1000;

char buf[MAX_N + 1];

void init() {
	scanf(" %*d %s ", buf);
}

int solve() {
	const int len = strlen(buf);
	for (int i = len - 1 ; i >= 1; --i) if (buf[i-1] == '1') {
		buf[i] = '1';
	}
	for (int i = 0; i < len - 1; ++i) if (buf[i+1] == '1') {
		buf[i] = '1';
	}
	return count(buf, buf + len, '0');
}

int main() {
	int T;
	scanf("%d", &T);
	for (int _ = 0; _ < T; ++_) {
		init();
		printf("%d\n", solve());
	}

	return 0;
}