#3錯——92分,求調
查看原帖
#3錯——92分,求調
892625
WangYinxiAlex楼主2024/6/1 17:17
#include<iostream>
#include<algorithm>
using namespace std;
int a[200001];
int n,c;
int Find(int first){
	int sum=0;
	for(int i=first;a[i]==a[first]&&i<n;i++){
		sum++;
	}
	return sum;
}
int main(){
	cin>>n>>c;
	for(int i=0;i<n;i++)cin>>a[i];
	sort(a,a+n);
	int sum=0,f=0,l=1;
	while(l<n||f!=l-1){
		if(a[l]-a[f]==c){
			int x=Find(l),y=Find(f);
			sum+=x*y;
			l+=x-1;
			f+=y-1;
		}
		if(a[l]-a[f]<c){
			if(l<n-1)l++;
			else break;
		}else{
			if(f==l-1&&a[l]-a[f]!=c)break;
			else f++;
		}
	}
	cout<<sum<<endl;
	return 0;
}

大佬幫助,必関!

2024/6/1 17:17
加载中...