Problem:
カップゲーム

3 つのカップがふせて置かれています。カップの置かれている場所を、順に A,B,C と呼ぶことにします。最初は A に置かれているカップの中にボールが隠されているとします。カップの位置を入れ替えると、中に入っているボールも一緒に移動します。

入れ替える２つのカップの位置を読み込んで、最終的にどの場所のカップにボールが隠されているかを出力するプログラムを作成してください。

Input

入れ替える２つのカップの位置が順番に複数行にわたり与えられます。各行に、入れ替える２つのカップの位置を表す文字（A, B, または C）がカンマ区切りで与えられます。

入れ替える操作は 50 回を超えません。

Output

ボールが入っているカップの場所（A, B, または C）を１行に出力します。

Sample Input

B,C
A,C
C,B
A,B
C,B

Output for the Sample Input

A

Solution in JAVA (judge verdict: Accepted)

import java.io.*;
import java.util.StringTokenizer;

class Main {
	public static void main(String args[]) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String buf;

		try {
			int cup[] = {1,0,0};
			String ID = "ABC";
			while ((buf = br.readLine())!=null) {
				StringTokenizer st = new StringTokenizer(buf,",");
				int a = ID.indexOf(st.nextToken().charAt(0));
				int b = ID.indexOf(st.nextToken().charAt(0));

				cup[a] = cup[a]^cup[b];
				cup[b] = cup[a]^cup[b];
				cup[a] = cup[a]^cup[b];
			}
			for (int i=0;i<3;i++) {
				if (cup[i]==1) System.out.println(ID.charAt(i));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}