Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- #define pii pair<int, int>
- using namespace std;
- int main()
- {
- int n, m, k;
- cin >> n >> m;
- k = (int)sqrt(n + 0.) + 1;
- vector<int> data(n), res(m);
- vector<vector<int> > block(k);
- for(int i = 0; i < n; i++)
- {
- cin >> data[i];
- block[i/k].push_back(data[i]);
- }
- for(int i = 0; i < k; i++)
- sort(block[i].begin(), block[i].end());
- for(int i = 0; i < m; i++)
- {
- int l, r, _min, _max;
- cin >> l >> r >> _min >> _max;
- l--;
- r--;
- int j = l;
- int ans = 0;
- while(j <= r)
- {
- if(j%k == 0 && j + k - 1 <= r)
- {
- ans += upper_bound(block[j/k].begin(), block[j/k].end(), _max)
- - lower_bound(block[j/k].begin(), block[j/k].end(), _min);
- j += k;
- }
- else
- {
- if(_min <= data[j] && data[j] <= _max)
- ans++;
- j++;
- }
- }
- res[i] = ans;
- }
- for(int i = 0; i < res.size(); i++)
- cout << res[i] << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement