#include #include #include #include #include using namespace std; int calc_diff(int s1[3][3], int s2[3][3]) { int diff = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { diff += abs(s1[i][j] - s2[i][j]); } } return diff; } int main() { // There are only 8 variants for magic square of 3x3 int squares[][3][3] = { { {4,9,2}, {3,5,7}, {8,1,6} }, { {2,7,6}, {9,5,1}, {4,3,8} }, { {6,1,8}, {7,5,3}, {2,9,4} }, { {8,3,4}, {1,5,9}, {6,7,2} }, { {2,9,4}, {7,5,3}, {6,1,8} }, { {6,7,2}, {1,5,9}, {8,3,4} }, { {8,1,6}, {3,5,7}, {4,9,2} }, { {4,3,8}, {9,5,1}, {2,7,6} } }; int input[3][3]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { cin >> input[i][j]; } } int nsquares = sizeof(squares)/sizeof(*squares); int min_diff = 999; for (int i = 0; i < nsquares; i++) { int diff = calc_diff(input, squares[i]); if (diff < min_diff) min_diff = diff; } cout << min_diff; return 0; }