#include #include #include #include #include #include #include #include #define vv_bool vector > using namespace std; bool check_dice(vv_bool &a, vv_bool &b) { for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { if (a[i][j] != b[i][j]) { return false; } } } return true; } bool check_dices(vv_bool &die) { vv_bool one(3,vector(3,false)); one[1][1] = true; if (check_dice(die, one)) { cout << "1\n"; return true; } vv_bool two_1(3,vector(3,false)); two_1[0][0] = true; two_1[2][2] = true; if (check_dice(die, two_1)) { cout << "2\n"; return true; } vv_bool two_2(3,vector(3,false)); two_2[0][1] = true; two_2[1][0] = true; if (check_dice(die, two_2)) { cout << "2\n"; return true; } vv_bool three_1(3,vector(3,false)); three_1[0][0] = true; three_1[2][2] = true; three_1[1][1] = true; if (check_dice(die, three_1)) { cout << "3\n"; return true; } vv_bool three_2(3,vector(3,false)); three_2[0][2] = true; three_2[2][0] = true; three_2[1][1] = true; if (check_dice(die, three_2)) { cout << "3\n"; return true; } vv_bool four(3,vector(3,false)); four[0][0] = true; four[2][0] = true; four[0][2] = true; four[2][2] = true; if (check_dice(die, four)) { cout << "4\n"; return true; } vv_bool five(3,vector(3,false)); five[0][0] = true; five[2][0] = true; five[0][2] = true; five[2][2] = true; five[1][1] = true; if (check_dice(die, five)) { cout << "5\n"; return true; } vv_bool six(3,vector(3,false)); six[0][0] = true; six[2][0] = true; six[0][2] = true; six[2][2] = true; six[1][0] = true; six[1][2] = true; if (check_dice(die, six)) { cout << "6\n"; return true; } vv_bool six_2(3,vector(3,false)); six_2[0][0] = true; six_2[2][0] = true; six_2[0][2] = true; six_2[2][2] = true; six_2[0][1] = true; six_2[2][1] = true; if (check_dice(die, six_2)) { cout << "6\n"; return true; } cout << "unknown\n"; return false; } int main() { vv_bool input(3,vector(3,false)); for(int i = 0; i < 3; i++) { string temp; cin >> temp; input[i][0] = temp[0] == 'o'; input[i][1] = temp[1] == 'o'; input[i][2] = temp[2] == 'o'; } check_dices(input); return 0; }