92求助
查看原帖
92求助
1167083
Jerry0611楼主2025/1/30 20:28
#include<bits/stdc++.h>
using namespace std;
int n,c,g=0;
int main(){
	cin>>n>>c;
	int li[n],l,r,t;
	for(int i=0;i<n;i++){
		cin>>li[i];
	}
	sort(li,li+n);
	for(int i=0;i<n;i++){
		int t=li[i]-c,l=0,r=n-1,l1=0,r1=n-1;
		while(l<=r){
			int mid=(l+r)/2;
			if(li[mid]<t){
				l=mid+1;
			}
			else{
				r=mid-1;
			}
		}
		while(l1<=r1){
			int mid=(l1+r1)/2;
			if(li[mid]>t){
				l1=mid+1;
			}
			else{
				r1=mid-1;
			}
		}
		if(li[l]==t){
			g+=l-l1;
		}
	}
	cout<<g+1;
	return 0;
}

include<bits/stdc++.h>

using namespace std; int n,c,g=0; int main(){ cin>>n>>c; int li[n],l,r,t; for(int i=0;i<n;i++){ cin>>li[i]; } sort(li,li+n); for(int i=0;i<n;i++){ int t=li[i]-c,l=0,r=n-1,l1=0,r1=n-1; while(l<=r){ int mid=(l+r)/2; if(li[mid]<t){ l=mid+1; } else{ r=mid-1; } } while(l1<=r1){ int mid=(l1+r1)/2; if(li[mid]>t){ l1=mid+1; } else{ r1=mid-1; } } if(li[l]==t){ g+=l-l1; } } cout<<g+1; return 0; }

2025/1/30 20:28
加载中...