大佬们 我在vs调试了十几个数据都没问题 这里为啥一个都过了
查看原帖
大佬们 我在vs调试了十几个数据都没问题 这里为啥一个都过了
834070
szz123456楼主2023/3/18 16:12
#include<iostream>
using namespace std;
long long q[10000000];
long long left_bound(long long q[], long long l, long long r, long long x)
{
	while (l < r)
	{
		long long mid = (l + r) / 2;
		if (q[mid] >= x)r = mid;
		else l = mid + 1;
	}
	return l;
}
long long right_bound(long long q[], long long l, long r, long x)
{
	while (l < r)
	{
		long long mid = (l + r + 1) / 2;
		if (q[mid] <= x)l = mid;
		else  r = mid - 1;
	}
	return l;
}
int main()
{
	long long n, x;long long m = 0; cin >> n >> x;
	for (long long i = 0; i < n; i++)cin >> q[i];
	for (long long i = 0; i < n; i++)
	{
		long long k = q[i] - x;
		long long begin = left_bound(q, 0, n - 1, k);
		if (q[begin] == k)m++;
		long long end = right_bound(q, 0, n - 1, k);
		if (q[end] == k&&end!=begin)m++;
	}
	cout << m;
	return 0;
}
2023/3/18 16:12
加载中...