3
unordered_map<string, set<pair<int, string>>> cuisine_ratings;4
unordered_map<string, string> food_cuisine;5
unordered_map<string, int> food_rating;6
FoodRatings(vector<string> &foods, vector<string> &cuisines, vector<int> &ratings) {7
for (int i = 0; i < foods.size(); ++i) {8
cuisine_ratings[cuisines[i]].insert({-ratings[i], foods[i]});9
food_cuisine[foods[i]] = cuisines[i];10
food_rating[foods[i]] = ratings[i];13
void changeRating(string food, int newRating) {14
auto &cuisine = food_cuisine.find(food)->second;15
cuisine_ratings[cuisine].erase({-food_rating[food], food});16
cuisine_ratings[cuisine].insert({-newRating, food});17
food_rating[food] = newRating;19
string highestRated(string cuisine) {20
return begin(cuisine_ratings[cuisine])->second;