这道题的第一个讨论
查看原帖
这道题的第一个讨论
1551928
wonderfultimeCLI楼主2025/7/24 17:46

我才蓝号,怎么做呀,啊啊,有人能改一下吗:

#include <bits/stdc++.h>
using namespace std;
long long k[2000005];
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	long long n, c;
	cin >> n >> c;
	for (long long i = 0; i < n; i++) {
		cin >> k[i];
	}
	long long cnt = 0;
	for (long long b = 0; b < n; b++) {
		long long a = c + k[b];
		long long L = 0, R = n - 1;
		while (L < R) {
			long long z = (L + R + 1) / 2;
			if (k[z] < a) {
				L = z ;
			} else {
				R = z - 1;
			} // a=3   3 4
		}
		if (k[L] == a || k[L + 1] == a) {
			long long L1, R1;
			L1 = 0;
			R1 = n - 1;
			while (L1 < R1) {
				long long z = (L1 + R1 + 1) / 2;
				if (k[z] <= a) {
					L1 = z;
				} else {
					R1 = z - 1;
				}
			}
			//cout << L1 << ' ' << L << endl;
			if(a[L] == a) L--;
			if(k[L1] == a)
				cnt += L1 - L;
		}
	}
	cout << cnt;
	return 0;
}
2025/7/24 17:46
加载中...