Monday, April 3, 2023

DNA Health Analysis | HackerRank

int formingMagicSquare(vector<vector<int>> s) {
    // Possible magic squares to compare against
    vector<vector<vector<int>>> magic_squares = {
        {{8, 1, 6}, {3, 5, 7}, {4, 9, 2}},
        {{6, 1, 8}, {7, 5, 3}, {2, 9, 4}},
        {{4, 9, 2}, {3, 5, 7}, {8, 1, 6}},
        {{2, 9, 4}, {7, 5, 3}, {6, 1, 8}},
        {{8, 3, 4}, {1, 5, 9}, {6, 7, 2}},
        {{4, 3, 8}, {9, 5, 1}, {2, 7, 6}},
        {{6, 7, 2}, {1, 5, 9}, {8, 3, 4}},
        {{2, 7, 6}, {9, 5, 1}, {4, 3, 8}}
    };

    int min_cost = INT_MAX;

    // For each possible magic square
    for (auto &magic_square : magic_squares) {
        int cost = 0;

        // For each element in the input matrix and the corresponding element in the magic square
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                cost += abs(s[i][j] - magic_square[i][j]);
            }
        }

        // Update minimum cost
        min_cost = min(min_cost, cost);
    }

    return min_cost;
}

No comments:

Post a Comment

horizontal ads