Codeforces Beta Round #77 (Div. 2 Only) A : Football

問題概要

01からなる長さ100以下の文字列が与えられる。0or1が7つ以上連続する箇所があるかどうかを判定する問題。

acceptされたコード

計算量O(strlen)。

#include <cstdio>
using namespace std;

const int MAX_L = 100;

char buf[MAX_L + 1];

void init(){
	scanf("%[^\n]%*c", buf);
}

bool solve(){
	for(int i=0, cnt=1; buf[i]; i++){
		if(buf[i] == buf[i + 1] && ++cnt >= 7 ){
			return true;
		}
		else if(buf[i] != buf[i + 1]){
			cnt = 1;
		}
	}

	return false;
}

int main(){
	init();
	puts(solve() ? "YES" : "NO");

	return 0;
}