#include<iostream>#include<vector>#include<algorithm>#include<map>classRangeFreqQuery{public:RangeFreqQuery(std::vector<int>&arr){for(inti=0;i<arr.size();++i){map[arr[i]].push_back(i);}}intquery(intleft,intright,intvalue){if(left>right){return0;}auto&v=map[value];autoit1=std::lower_bound(v.begin(),v.end(),left);autoit2=std::lower_bound(v.begin(),v.end(),right+1);returnit2-it1;}private:std::map<int,std::vector<int>>map;};/**
* Your RangeFreqQuery object will be instantiated and called as such:
* RangeFreqQuery* obj = new RangeFreqQuery(arr);
* int param_1 = obj->query(left,right,value);
*/