#include #include #include #include #include using namespace std; int calcScore(int magic[3][3], int m[3][3], int i, int j) { if (magic[i][j] != m[i][j]) { if (magic[i][j] - m[i][j] < 0) { return -1 * (magic[i][j] - m[i][j]); } else { return magic[i][j] - m[i][j]; } } return 0; } int main() { int n = 3; int score[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int m[3][3]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &m[i][j]); } } int magic1[3][3] = {{8, 1, 6}, {3, 5, 7}, {4, 9, 2}}; int magic2[3][3] = {{6, 1, 8}, {7, 5, 3}, {2, 9, 4}}; int magic3[3][3] = {{4, 3, 8}, {9, 5, 1}, {2, 7, 6}}; int magic4[3][3] = {{2, 7, 6}, {9, 5, 1}, {4, 3, 8}}; int magic5[3][3] = {{2, 9, 4}, {7, 5, 3}, {6, 1, 8}}; int magic6[3][3] = {{4, 9, 2}, {3, 5, 7}, {8, 1, 6}}; int magic7[3][3] = {{6, 7, 2}, {1, 5, 9}, {8, 3, 4}}; int magic8[3][3] = {{8, 3, 4}, {1, 5, 9}, {6, 7, 2}}; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { score[0] += calcScore(magic1, m, i, j); score[1] += calcScore(magic2, m, i, j); score[2] += calcScore(magic3, m, i, j); score[3] += calcScore(magic4, m, i, j); score[4] += calcScore(magic5, m, i, j); score[5] += calcScore(magic6, m, i, j); score[6] += calcScore(magic7, m, i, j); score[7] += calcScore(magic8, m, i, j); } } int min = score[0]; for (int i = 1; i < 8; i++) { if (min > score[i]) min = score[i]; } printf("%d\n", min); return 0; }