leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

2353.cpp (836B)


0 class FoodRatings {
1 unordered_map<string, set<pair<int, string>>> order;
2 unordered_map<string, string> category;
3 unordered_map<string, int> rating;
5 public:
6 FoodRatings(const vector<string> &foods, const vector<string> &cuisines, const vector<int> &ratings) {
7 for (int i = 0; i < foods.size(); i++) {
8 order[cuisines[i]].emplace(-ratings[i], foods[i]);
9 category.emplace(foods[i], cuisines[i]);
10 rating.emplace(foods[i], ratings[i]);
11 }
12 }
14 void changeRating(const string &food, int newRating) {
15 auto &st = order[category[food]];
16 st.erase(st.find({-rating[food], food}));
17 rating[food] = newRating;
18 st.emplace(-rating[food], food);
19 }
21 string highestRated(const string &cuisine) { return order[cuisine].begin()->second; }
22 };