#3 TEL 求助!!!
  • 板块P1102 A-B 数对
  • 楼主ZeroTwo
  • 当前回复2
  • 已保存回复2
  • 发布时间2020/8/20 11:22
  • 上次更新2023/11/6 19:52:03
查看原帖
#3 TEL 求助!!!
229117
ZeroTwo楼主2020/8/20 11:22
#include<bits/stdc++.h>

using namespace std;

int q[200010];
int n,c,ans = 0;

 inline int read()                      
{
  int x=0;
  char c=getchar();
  for(; c<'0'  || c>'9';  c=getchar());
  for(; c<='9' && c>='0'; c=getchar())
    x=(x<<3)+(x<<1)+c-'0';               
  return x;
}

int main()
{
	n = read();	c = read();
	for (int i = 1; i <= n; i ++)
		q[i] = read();
	sort(q + 1, q + n + 1);
	for (int i = 1;i <= n; i ++)
	{
		int l = i, r = n;
		while(l < r)
		{
			int mid = l + r >> 1;
			if (q[mid] - q[i] >= c)	r = mid;
			else l = mid + 1;
		}
		if (q[l] - q[i] == c)
		{
			int j = l, w = 1;
			while(q[++j] == q[l])	w ++;
			ans += w;
		}	
	}
	cout << ans;
	return 0;
 } 

大佬们怎么搞啊,位运算和快读还有O2都开了,#3还是1.2s

2020/8/20 11:22
加载中...