fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. //#define int long long
  4. #define fi first
  5. #define se second
  6. #define pii pair <int, int>
  7.  
  8. signed main(){
  9. int n, p, q;
  10. cin >> n >> p >>q;
  11. pii e[n];
  12. for (int i =1; i <=n; i++){
  13. int x;
  14. cin >> x;
  15. e[i] = {x, i};
  16. }
  17. sort(e+1, e+1+n);
  18. vector <int> ans(n+5);
  19. priority_queue <pair<int,pii>> pq;
  20. for (int i =1, j =1; i <= n ; i++){
  21. while( j < n && e[j+1].fi - e[i].fi <= p) j++;
  22. pq.push({j-i+1, {i, j}});
  23. while(!pq.empty() && (pq.top().se.fi > i || i > pq.top().se.se)) pq.pop();
  24. ans[e[i].se] = pq.top().fi;
  25. }
  26.  
  27. for (int i =0; i < q; i++){
  28. int x;
  29. cin >> x;
  30. cout << ans[x] << endl;
  31. }
  32. }
Success #stdin #stdout 0.01s 5280KB
stdin
6 5 2
1 6 8 3 10 2
2
5
stdout
4
3