#include #include #include #define f first #define s second using namespace std; int mainArr[3][3]; int minVal = 10000; int newArr[3][3]; int validNewArray() { int sum = newArr[0][0] + newArr[0][1] + newArr[0][2]; int diagDiff = sum - newArr[0][0] - newArr[1][1]; if(diagDiff <= 0 || diagDiff > 9) return -1; else newArr[2][2] = diagDiff; diagDiff = sum - newArr[0][2] - newArr[1][1]; if(diagDiff <= 0 || diagDiff > 9) return -1; else newArr[2][0] = diagDiff; diagDiff = sum - newArr[0][0] - newArr[2][0]; if(diagDiff <= 0 || diagDiff > 9) return -1; else newArr[1][0] = diagDiff; diagDiff = sum - newArr[0][1] - newArr[1][1]; if(diagDiff <= 0 || diagDiff > 9) return -1; else newArr[2][1] = diagDiff; diagDiff = sum - newArr[0][2] - newArr[2][2]; if(diagDiff <= 0 || diagDiff > 9) return -1; else newArr[1][2] = diagDiff; int minDif = 0; int newType[10]; for(int counter = 0; counter < 10; counter++) newType[counter] = 0; for(int counter = 0; counter < 3; counter++) { if(sum != newArr[counter][0] + newArr[counter][1] + newArr[counter][2]) return -1; } for(int counter = 0; counter < 3; counter++) { for(int counter2 = 0; counter2 < 3; counter2++) { newType[newArr[counter][counter2]]++; minDif += max(newArr[counter][counter2], mainArr[counter][counter2]) - min(newArr[counter][counter2], mainArr[counter][counter2]); } } for(int counter = 1; counter < 10; counter++) if(newType[counter] != 1) return -1; return minDif; } int main(){ for(int counter = 0; counter < 3; counter++) for(int counter2 = 0; counter2 < 3; counter2++) cin >> mainArr[counter][counter2]; for(int counter1 = 1; counter1 < 10; counter1++) { for(int counter2 = 1; counter2 < 10; counter2++) { for(int counter3 = 1; counter3 < 10; counter3++) { for(int counter4 = 1; counter4 < 10; counter4++) { newArr[0][0] = counter1; newArr[0][1] = counter2; newArr[0][2] = counter3; newArr[1][1] = counter4; int val = validNewArray(); if(val == -1) continue; if(val < minVal) minVal = val; } } } } cout << minVal << endl; return 0; }