mickypinata

CUBE-T188: Lazy

Jun 20th, 2021
655
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef map<int, vector<int>>::iterator mvit;
  5. typedef vector<int>::iterator vit;
  6.  
  7. map<int, vector<int>> mp;
  8.  
  9. int main(){
  10.  
  11.     int nNumber, Q;
  12.     scanf("%d%d", &nNumber, &Q);
  13.     for(int i = 1; i <= nNumber; ++i){
  14.         int x;
  15.         scanf("%d", &x);
  16.         mvit itr = mp.find(x);
  17.         if(itr == mp.end()){
  18.             mp.emplace(x, vector<int>(1, i));
  19.         } else {
  20.             (itr -> second).push_back(i);
  21.         }
  22.     }
  23.  
  24.     for(int q = 1; q <= Q; ++q){
  25.         int l, r, x;
  26.         scanf("%d%d%d", &l, &r, &x);
  27.         mvit itr = mp.find(x);
  28.         if(itr == mp.end()){
  29.             cout << "0\n";
  30.         } else {
  31.             vit lwb = lower_bound((itr -> second).begin(), (itr -> second).end(), l);
  32.             vit upb = upper_bound((itr -> second).begin(), (itr -> second).end(), r);
  33.             cout << upb - lwb << '\n';
  34.         }
  35.     }
  36.  
  37.     return 0;
  38. }
  39.  
RAW Paste Data