32 2021. 01. 08 19:58:18 mraron Háromszögek cpp11 Elfogadva 40/40 68ms 24520 KiB
#include<bits/stdc++.h>
using namespace std;
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	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());
	a.push_back({(int)2e9});
	int blksz=500;
	for(int i=0;i<q;++i) {
		int b,c;
		cin>>b>>c;
		int mn=abs(b-c), mx=b+c;
		int L=0, R=n;
		
		while(L<=n && a[L]<=mn) L+=blksz;
		if(L>n || a[L]>mn) {
			if(L>n || (L>=blksz && a[L]>mn)) L-=blksz;
			while(L<=n && a[L]<=mn) L++;
		}
		while(R>=0 && a[R]>=mx) R-=blksz;
		if(R<0 || a[R]<mx) {
			if(R<0 || (R<n && a[R]<mx)) R+=blksz;
			while(R>=0 && a[R]>=mx) R--;
		}
		//~ cerr<<L<<" "<<R<<"\n";
		cout<<max(0,R-L+1)<<"\n";
	}	
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 2ms 1756 KiB
2 Elfogadva 0/0 1ms 1780 KiB
3 Elfogadva 0/0 6ms 2068 KiB
4 Elfogadva 4/4 2ms 2016 KiB
5 Elfogadva 2/2 2ms 2016 KiB
6 Elfogadva 1/1 50ms 4964 KiB
7 Elfogadva 1/1 39ms 6732 KiB
8 Elfogadva 2/2 37ms 8380 KiB
9 Elfogadva 2/2 39ms 10212 KiB
10 Elfogadva 1/1 56ms 11344 KiB
11 Elfogadva 1/1 61ms 12488 KiB
12 Elfogadva 2/2 57ms 13548 KiB
13 Elfogadva 2/2 52ms 13600 KiB
14 Elfogadva 1/1 61ms 15108 KiB
15 Elfogadva 1/1 64ms 16704 KiB
16 Elfogadva 1/1 64ms 18280 KiB
17 Elfogadva 1/1 61ms 20048 KiB
18 Elfogadva 1/1 63ms 20744 KiB
19 Elfogadva 2/2 61ms 21648 KiB
20 Elfogadva 2/2 65ms 23256 KiB
21 Elfogadva 3/3 56ms 24504 KiB
22 Elfogadva 5/5 59ms 24520 KiB
23 Elfogadva 5/5 68ms 24508 KiB