#include #include #include #include #include using namespace std; struct sol { int num[9]; }; struct sol sols[8]; int abs(int x) { return x<0?-x:x; } int dist(struct sol a, struct sol b) { int tot=0; for(int i=0;i<9;i++) { tot+=abs(a.num[i] - b.num[i]); } return tot; } int main() { sols[0] = {2,9,4,7,5,3,6,1,8}; sols[1] = {6,7,2,1,5,9,8,3,4}; sols[2] = {8,1,6,3,5,7,4,9,2}; sols[3] = {4,3,8,9,5,1,2,7,6}; sols[4] = {4,9,2,3,5,7,8,1,6}; sols[5] = {6,1,8,7,5,3,2,9,4}; sols[6] = {2,7,6,9,5,1,4,3,8}; sols[7] = {8,3,4,1,5,9,6,7,2}; /* Enter your code here. Read input from STDIN. Print output to STDOUT */ struct sol input; for(int i=0;i<9;i++) { scanf(" %d",&(input.num[i])); } int best = 9999999; for(int i=0;i<8;i++) { int d = dist(input,sols[i]); if(d