为什么这样的双指针是错的
查看原帖
为什么这样的双指针是错的
860066
WangQiNB666楼主2023/2/27 20:29

样例也少算一个

#include <bits/stdc++.h>

using namespace std;

const int N=2e5+10;
int a[N];
int n,c;
int main()
{
    cin >>n>>c;
    for(int i=0;i<n;i++) cin >>a[i];
    sort(a,a+n);
    int s=0;
    for(int i=0,j=n-1;i<n;i++) 
    {
        while(j>=0&&a[j]-a[i]!=c)
        {
            j--;
        }
        if(j>=0&&a[j]-a[i]==c&&j-i>=1)
        {
            s++;
        }
    }
    cout <<s<<endl;
    return 0;
}

2023/2/27 20:29
加载中...