KUPC2012 B : 簡易オセロ

問題概要

1次元のオセロで連結な初期状態が与えられるので以後最善を尽くした場合どちらが勝つか判定する問題。

解法

両端が同じになればその色が勝つ。両端が異なれば初手で両端を同じ色にできる先手が勝つ。

acceptされたコード

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

const int MAX_L = 50;

char buf[MAX_L + 1];

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

char solve() {
	const int L = strlen(buf);
	if (buf[0] != buf[L-1]) {
		return 'o';
	}
	else {
		return buf[0];
	}
}

int main() {
	init();
	putchar(solve());
	putchar('\n');

	return 0;
}