求助
  • 板块灌水区
  • 楼主venti520
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/3/27 22:11
  • 上次更新2024/3/28 12:24:57
查看原帖
求助
780145
venti520楼主2024/3/27 22:11

P1102 到底怎么做啊!
有没有大佬帮我看看代码问题出在哪里

#include<cstdio>
using namespace std;
long long a[100005];
long long n,c,ane=0,t;
void kp(long long *arr,long long start,long long end)//快速排序法
{
	if(start>=end)
	return;
	long long left=start;
	long long right=end;
	long long 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);
}
void rabet()//双指针(兔赛跑类型)
{
    long long i=1;
    for(long long j=1;j<=n;j++)
    {
        if(a[j]-a[i]<=c)
        {
            if(a[j]-a[i]==c)
            ane++;
        }
        else
        {
        	i++;
        	j=i;
		}
    }
}
int main()
{
    scanf("%d%d",&n,&c);
    for(long long i=1;i<=n;i++)
    scanf("%d",&a[i]);
    kp(a,1,c);
    rabet();
    printf("%d",ane);//输出
    return 0;
}
2024/3/27 22:11
加载中...