1class RangeFreqQuery {2private:3int size;4unordered_map<int, vector<int>> mp;56public:7RangeFreqQuery(vector<int> &arr) {8size = arr.size();9for (int i = 0; i < size; i++) {10mp[arr[i]].push_back(i);11}12}13int query(int left, int right, int value) {14int first = lower_bound(mp[value].begin(), mp[value].end(), left) - mp[value].begin();15int second = upper_bound(mp[value].begin(), mp[value].end(), right) - mp[value].begin();16return second - first;17}18};