AOJ 0266 - Aka-beko and 40 Thieves

なるべく早く早くって解いたら10分かかりました.
そういうのはAtCoderぐらいしか意識してないです.意識してみることにします.

#include<iostream>

int main(){
	char map[26][2];
	map[0][0] = 'x';
	map[0][1] = 'y';
	map['x'-'a'][0] = 'u';
	map['x'-'a'][1] = 'z';
	map['y'-'a'][0] = 'x';
	map['y'-'a'][1] = 'u';
	map[25][0] = 'w';
	map[25][1] = 'b';
	map['w'-'a'][0] = 'b';
	map['w'-'a'][1] = 'y';
	map[1][0] = 'y';
	map[1][1] = 'x';
	map['u'-'a'][0] = 'u';
	map['u'-'a'][1] = 'u';
	
	std::string route;
	while(std::cin >> route, route != "#"){
		char city = 'a';
		for(int i=0;i<route.size();i++){
			city = map[city-'a'][route[i]-'0'];
		}
		std::cout << (city=='b'?"Yes":"No") << std::endl;
	}
}