10
bool operator()(const cell &a, const cell &b) {12
return a.dist < b.dist;13
else if (a.cost != b.cost)14
return a.cost < b.cost;15
else if (a.row != b.row)22
vector<vector<int>> highestRankedKItems(vector<vector<int>> &grid, vector<int> &pricing,23
vector<int> &start, int k) {25
int n = grid[0].size();27
queue<pair<int, int>> q;28
q.push({start[0], start[1]});30
vector<vector<bool>> vis(m, vector<bool>(n, false));31
vis[start[0]][start[1]] = true;33
int dx[4] = {-1, 0, 1, 0};34
int dy[4] = {0, -1, 0, 1};37
priority_queue<cell, vector<cell>, compare> pq;41
pair<int, int> p = q.front();43
if (grid[p.first][p.second] != 1 && grid[p.first][p.second] >= pricing[0] &&44
grid[p.first][p.second] <= pricing[1]) {45
pq.push({dist, grid[p.first][p.second], p.first, p.second});47
if (pq.size() > k) pq.pop();49
for (int k = 0; k < 4; k++) {50
int x = p.first + dx[k];51
int y = p.second + dy[k];53
if (x >= 0 && x < m && y >= 0 && y < n && vis[x][y] == false && grid[x][y] != 0) {62
vector<vector<int>> ans;64
ans.push_back({pq.top().row, pq.top().col});68
reverse(ans.begin(), ans.end());