Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef map<int, vector<int>>::iterator mvit;
- typedef vector<int>::iterator vit;
- map<int, vector<int>> mp;
- int main(){
- int nNumber, Q;
- scanf("%d%d", &nNumber, &Q);
- for(int i = 1; i <= nNumber; ++i){
- int x;
- scanf("%d", &x);
- mvit itr = mp.find(x);
- if(itr == mp.end()){
- mp.emplace(x, vector<int>(1, i));
- } else {
- (itr -> second).push_back(i);
- }
- }
- for(int q = 1; q <= Q; ++q){
- int l, r, x;
- scanf("%d%d%d", &l, &r, &x);
- mvit itr = mp.find(x);
- if(itr == mp.end()){
- cout << "0\n";
- } else {
- vit lwb = lower_bound((itr -> second).begin(), (itr -> second).end(), l);
- vit upb = upper_bound((itr -> second).begin(), (itr -> second).end(), r);
- cout << upb - lwb << '\n';
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement