62022023-11-07 20:20:55UVinceHáromszögekcpp11Wrong answer 39/40215ms34984 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) 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) break;
			ir=cur;
		}
		cout<<ir-il<<"\n";
	}
}
SubtaskSumTestVerdictTimeMemory
base39/40
1Accepted0/03ms1808 KiB
2Accepted0/03ms1932 KiB
3Accepted0/018ms2192 KiB
4Accepted4/44ms2292 KiB
5Accepted2/24ms2520 KiB
6Wrong answer0/1209ms5384 KiB
7Accepted1/1153ms7148 KiB
8Accepted2/2185ms8808 KiB
9Accepted2/2184ms10564 KiB
10Accepted1/1142ms12032 KiB
11Accepted1/1141ms13284 KiB
12Accepted2/2141ms14312 KiB
13Accepted2/2178ms15784 KiB
14Accepted1/1175ms17944 KiB
15Accepted1/1163ms19832 KiB
16Accepted1/1180ms21616 KiB
17Accepted1/1194ms23756 KiB
18Accepted1/1146ms25376 KiB
19Accepted2/2145ms27048 KiB
20Accepted2/2162ms28832 KiB
21Accepted3/3185ms30764 KiB
22Accepted5/5173ms32768 KiB
23Accepted5/5215ms34984 KiB