AOJ2407 Simple Othello

問題リンク Simple Othello

  • 解法

両端の駒の状態だけ見て、O(1)で判定できます。
結論から言うと、両端がともにxのときだけxが勝ち、それ以外はoが勝ちます。
両端がoとxのとき、先攻はx側に駒を置いて両端がoになります。xはどちらに駒を置いても、次のターンに置いた駒をoで上書きされます。よっていずれ全てoになります。
両端がoのとき、先攻のoはパスをし、上の状態と同じになるのでoが勝ちます。
両端がxのときはx側が常にoを上書きし続けられるので、xが勝ちます。

  • ソース
import java.util.Scanner;

//Simple Othello
public class AOJ2407 {

	void run(){
		Scanner sc = new Scanner(System.in);
		char[] s = sc.next().toCharArray();
		int n = s.length;
		System.out.println(s[0]==s[n-1]&&s[0]=='x'?'x':'o');
	}
	
	public static void main(String[] args) {
		new AOJ2407().run();
	}
}