#include #include typedef struct dice { std::string state[3]; unsigned short int val; } dice; int main() { std::string input[3]; dice states[] = { {":::",":o:",":::", 1}, {"o::",":::", "::o", 2}, {"::o",":::","o::", 2}, {"o::",":o:", "::o", 3}, {"::o",":o:", "o::", 3}, {"o:o",":::", "o:o", 4}, {"o:o",":o:", "o:o", 5}, {"ooo",":::", "ooo", 6}, {"o:o","o:o", "o:o", 6}}; std::cin >> input[0] >> input[1] >> input[2]; for (unsigned short int i = 0; i < (sizeof(states)/sizeof(dice)); i++) { if (input[0] == states[i].state[0] && input[1] == states[i].state[1] && input[2] == states[i].state[2]) { std::cout << states[i].val << std::endl; return 0; } } std::cout << "unknown\n"; return 0; }