#include #include #include #include #include using namespace std; const int MAX = 10; int square[MAX]; int given[MAX]; int sol = 1000; int used[MAX]; void testIfMagic() { int a1 = square[1]; int a2 = square[2]; int a3 = square[3]; int a4 = square[4]; int a5 = square[5]; int a6 = square[6]; int a7 = square[7]; int a8 = square[8]; int a9 = square[9]; if (!(a1 + a2 + a3 == 15 && a1 + a5 + a9 == 15 && a1 + a4 + a7 == 15 && a2 + a5 + a8 == 15 && a3 + a6 + a9 == 15 && a3 + a5 + a7 == 15 && a4 + a5 + a6 == 15 && a7 + a8 + a9 == 15)) return; int temp = 0; for (int i = 1; i <= 9; i++) temp += abs(given[i] - square[i]); sol = min(temp, sol); } void gen(int pos) { if (pos > 9) { testIfMagic(); return; } for (int i = 1; i <= 9; i++) { if (used[i] == 0) { used[i] = 1; square[pos] = i; gen(pos + 1); used[i] = 0; } } } int main() { cin.sync_with_stdio(false); for (int i = 1; i <= 9; i++) cin >> given[i]; gen(1); cout << sol; return 0; }