3713821_ac_47ms_260k.cpp

来自「北大大牛代码 1240道题的原代码 超级权威」· C++ 代码 · 共 42 行

CPP
42
字号
#include <stdio.h>
#include <algorithm>

using namespace std;

int l[20000];

int find(int m, int s, int e)
{
	int max, mid, min;

	min = s;
	max = e;
	while (min < max)
	{
		mid = (min + max) >> 1;
		if (l[mid] <= m)
			min = mid + 1;
		else
			max = mid;
	}
	return min - s;
}

int main()
{
	int n, s, i;

	scanf("%d%d", &n, &s);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &l[i]);
	}
	sort(l, l + n);
	int ans = 0;
	for (i = 0; i < n; i++)
	{
		ans += find(s - l[i], i + 1, n);
	}
	printf("%d\n", ans);
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?