/** * * @author Kaloyan Manev * @idnumber 62034 * */ #include /* * * 0|-|0|<|3|5 * 1|+|1|=|4|6 * 2|/|2|<|5|7 * 3|*|3|=|6|8 * 4|-|4|>|7|9 * 5|+|5|=|8|0 * 6|-|6|<|9|1 * 7|+|7|=|0|2 * 8|/|8|>|1|3 * 9|*|9|=|2|4 * */ char ring0[] = "0123456789", ring1[] = "-+/*-+-+/*", ring2[] = "0123456789", ring3[] = "<=<=>=<=>=", ring4[] = "3456789012", ring5[] = "5678901234", equation[5] = {0, 0, 0, 0, 0}; int corrects = 0, temp = 0; bool checkEquation(char* equation) { int a = equation[0] - '0', b = equation[2] - '0', c = (equation[4] - '0') * 10 + (equation[5] - '0'); switch (equation[1]) { case '-': switch (equation[3]) { case '<': if (a - b < c) return true; break; case '=': if (a - b == c) return true; break; case '>': if (a - b > c) return true; break; } break; case '+': switch (equation[3]) { case '<': if (a + b < c) return true; break; case '=': if (a + b == c) return true; break; case '>': if (a + b > c) return true; break; } break; case '/': if (b) switch (equation[3]) { case '<': if (a / b < c) return true; break; case '=': if (a / b == c) return true; break; case '>': if (a / b > c) return true; break; } break; case '*': switch (equation[3]) { case '<': if (a * b < c) return true; break; case '=': if (a * b == c) return true; break; case '>': if (a * b > c) return true; break; } break; } return false; } void shift (int ringIndex) { char ch; switch (ringIndex) { case 0: ch = ring0[0]; for (int i = 0; i < 9; i++) ring0[i] = ring0[i + 1]; ring0[9] = ch; break; case 1: ch = ring1[0]; for (int i = 0; i < 9; i++) ring1[i] = ring1[i + 1]; ring1[9] = ch; break; case 2: ch = ring2[0]; for (int i = 0; i < 9; i++) ring2[i] = ring2[i + 1]; ring2[9] = ch; break; case 3: ch = ring3[0]; for (int i = 0; i < 9; i++) ring3[i] = ring3[i + 1]; ring3[9] = ch; break; case 4: ch = ring4[0]; for (int i = 0; i < 9; i++) ring4[i] = ring4[i + 1]; ring4[9] = ch; break; case 5: ch = ring5[0]; for (int i = 0; i < 9; i++) ring5[i] = ring5[i + 1]; ring5[9] = ch; break; } } int main() { for (int i = 0; i < 10; i++) { equation[0] = ring0[i]; equation[1] = ring1[i]; equation[2] = ring2[i]; equation[3] = ring3[i]; equation[4] = ring4[i]; equation[5] = ring5[i]; if (checkEquation (equation)) corrects++; } shift (5); for (int r0 = 0; r0 <= 9; r0++) { for (int r1 = 0; r1 <= 9; r1++) { for (int r2 = 0; r2 <= 9; r2++) { for (int r3 = 0; r3 <= 9; r3++) { for (int r4 = 0; r4 <= 9; r4++) { for (int r5 = 1; r5 <= 9; r5++) { temp = 0; for (int i = 0; i < 10; i++) { equation[0] = ring0[i]; equation[1] = ring1[i]; equation[2] = ring2[i]; equation[3] = ring3[i]; equation[4] = ring4[i]; equation[5] = ring5[i]; if (checkEquation (equation)) temp++; } if (temp >= corrects) { corrects = temp; std::cout<