#include #include #include #include #include using namespace std; const int MAXN = 1e5 + 10; int a[10][10], b[10][10], result; bool in[20]; void readData() { for(int i = 1; i <= 3; i++) { for(int j = 1; j <= 3; j++) { cin >> a[i][j]; } } } void getResult() { for(int i = 1; i <= 3; i++) { if (b[i][1] + b[i][2] + b[i][3] != 15) { return; } if (b[1][i] + b[2][i] + b[3][i] != 15) { return; } } if (b[1][1] + b[2][2] + b[3][3] != 15) { return; } if (b[3][1] + b[2][2] + b[1][3] != 15) { return; } int cost = 0; for(int i = 1; i <= 3; i++) { for(int j = 1; j <= 3; j++) { cost += abs(b[i][j] - a[i][j]); } } result = min(result, cost); } void generate_MS(int i, int j) { for(int k = 1; k <= 9; k++) { if (!in[k]) { in[k] = true; b[i][j] = k; if (j < 3) { generate_MS(i, j+1); } else if (i < 3) { generate_MS(i + 1, 1); } else { getResult(); } in[k] = false; } } } void solve() { result = 1000; for(int i = 1; i <= 9; i++) { in[i] = false; } generate_MS(1, 1); } void printResult() { cout << result << endl; } int main() { readData(); solve(); printResult(); return 0; }