记录编号 32911 评测结果 AAAAAAAAAA
题目名称 数对的个数 最终得分 100
用户昵称 Gravatarkaaala 是否通过 通过
代码语言 C++ 运行时间 0.043 s
提交时间 2011-11-08 19:48:51 内存使用 1.07 MiB
显示代码纯文本
#include<iostream>
#include<fstream>
#include<cmath>
#include<cstdlib>
#include<algorithm>

using namespace std;

int n,c,num[200002],ans;

int main()
{
	int i,j,l1,l2;
	ifstream fin("dec.in");
	ofstream fout("dec.out");
	fin>>n>>c;
	for(i=1;i<=n;i++)
		fin>>num[i];
	sort(num+1,num+1+n);
	j=1;
	i=2;
	while(i<=n)
	{
		if(num[i]-num[j]==c)
		{
			l1=l2=1;
			while(i+1<=n&&num[i]==num[i+1])
			{
				l1++;
				i++;
			}
			while(j+1<=n&&num[j]==num[j+1])
			{
				l2++;
				j++;
			}
			ans+=l1*l2;
			i++;
		}
		else
		if(num[i]-num[j]<c)
			i++;
		else
			j++;
	}
	fout<<ans<<endl;
	fin.close();
	fout.close();
	return 0;
}