• + 0 comments

    int magic[24][3][3] = {
    { {8, 1, 6}, {3, 5, 7}, {4, 9, 2} }, { {4, 3, 8}, {9, 5, 1}, {2, 7, 6} }, { {2, 9, 4}, {7, 5, 3}, {6, 1, 8} },
    { {6, 7, 2}, {1, 5, 9}, {8, 3, 4} },
    { {6, 1, 8}, {7, 5, 3}, {2, 9, 4} },
    { {8, 3, 4}, {1, 5, 9}, {6, 7, 2} },
    { {4, 9, 2}, {3, 5, 7}, {8, 1, 6} }, { {2, 7, 6}, {9, 5, 1}, {4, 3, 8} }
    };

    int formingMagicSquare(int s_rows, int s_columns, int** s) {

    int cost = 0;
    int min_cost = INT_MAX;
    
    
    for(int z = 0 ; z < 24;z++)
    {
        for(int i = 0 ; i < s_rows;i++)
        {
            for(int j = 0 ; j < s_columns;j++)
            {
                cost += abs(s[i][j] - magic[z][i][j]);
            }     
        }
         if (cost < min_cost) 
                min_cost = cost;
            cost = 0;
    }
    

    return min_cost;
    }