求助
  • 板块题目总版
  • 楼主venti520
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/3/28 19:49
  • 上次更新2024/3/28 19:57:46
查看原帖
求助
780145
venti520楼主2024/3/28 19:49

P1102 根本照不出来问题,求大佬帮助```c #include<bits/stdc++.h> using namespace std; int a[200001]; int n,c;

void kp(int *arr,int start,int end) { if(start>=end) return; int left=start; int right=end; int pivot=arr[left]; while(left<right) { if(arr[right]>=pivot) { right--; } else { arr[left]=arr[right]; left++; arr[right]=arr[left]; } } arr[right]=pivot; kp(arr,start,left-1); kp(arr,right+1,end); }

int main() { cin>>n>>c; for(int i=1;i<=n;i++) { cin>>a[i]; } kp(a,1,n);

int r1=1,r2=1;
int ans=0;

for(int i=1;i<=n;i++)
{
		while(r1<=n&&a[r1]-a[i]<=c) r1++;
		while(r2<=n&&a[r2]-a[i]<c)	r2++;
		if(a[r1-1]-a[i]==c&&a[r2]-a[i]==c&&r1-i>=1)
		ans+=r1-r2;
}
cout<<ans;
return 0;	

}

2024/3/28 19:49
加载中...