62032023-11-07 20:31:35UVinceHáromszögekcpp11Elfogadva 40/40209ms5364 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
	int n,q;
	cin>>n>>q;
	vector<int> a(n);
	for (int i = 0; i<n; i++) cin>>a[i];
	sort(a.begin(), a.end());

	while (q--){
		int b,c;
		cin>>b>>c;
		int mina=abs(b-c)+1, maxa=b+c-1, l=0, r=n, il=0, ir=n;

		while(il+1<r){
			int cur = (il+r)/2;
			if (a[cur]<=mina){
				il=cur;
				continue;
			}
			if (r==cur) {r--;break;}
			r=cur;
		}
		if (a[il]<mina) il++;

		while(l+1<ir){
			int cur = (l+ir)/2;
			if (a[cur]<=maxa){
				l=cur;
				continue;
			}
			if (ir==cur) {ir=il;break;}
			ir=cur;
		}
		if (a[il] > maxa){
			cout<<"0\n";
			continue;
		}
		//cout<<il<<" "<<ir<<"\n";
		cout<<ir-il<<"\n";
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/03ms1816 KiB
2Elfogadva0/03ms2004 KiB
3Elfogadva0/016ms2288 KiB
4Elfogadva4/44ms2432 KiB
5Elfogadva2/24ms2540 KiB
6Elfogadva1/1209ms3316 KiB
7Elfogadva1/1153ms3440 KiB
8Elfogadva2/2151ms3652 KiB
9Elfogadva2/2152ms4148 KiB
10Elfogadva1/1187ms4336 KiB
11Elfogadva1/1137ms4320 KiB
12Elfogadva2/2141ms4332 KiB
13Elfogadva2/2171ms4396 KiB
14Elfogadva1/1189ms4488 KiB
15Elfogadva1/1158ms4716 KiB
16Elfogadva1/1180ms4968 KiB
17Elfogadva1/1181ms5012 KiB
18Elfogadva1/1145ms4908 KiB
19Elfogadva2/2187ms5012 KiB
20Elfogadva2/2184ms5364 KiB
21Elfogadva3/3153ms5360 KiB
22Elfogadva5/5188ms5228 KiB
23Elfogadva5/5178ms5324 KiB