Pagini recente » Diferente pentru template/algoritmiada-2009/header intre reviziile 25 si 6 | Cod sursa (job #3361559) | Cod sursa (job #3361705) | Cod sursa (job #3361560) | Cod sursa (job #3361558)
#include <bits/stdc++.h>
using namespace std;
int n, t, v[200005], x, y, st, dr, mij, a, b;
int main() {
cin >> n >> t;
for(int i = 1; i <= n; i ++) {
cin >> v[i];
}
sort(v+1, v+n+1); // #include <algorithm>
for(int i = 1; i <= t; i ++) {
cin >> x >> y;
if(x > v[n]) {
cout << 0 << '\n';
continue;
}
if(y < v[1]) {
cout << 0 << '\n';
continue;
}
st = 1; dr = n;
while(st < dr) {
mij = (st + dr) / 2;
if(x <= v[mij]) {
dr = mij;
} else {
st = mij + 1;
}
}
a = st;
st = 1; dr = n;
while(st < dr) {
mij = (st + dr + 1) / 2;
if(y < v[mij]) {
dr = mij - 1;
} else {
st = mij;
}
}
b = st;
cout << b - a + 1 << '\n';
}
return 0;
}