求助,75
  • 板块P1102 A-B 数对
  • 楼主hao50yu
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/11 13:55
  • 上次更新2024/11/11 19:02:59
查看原帖
求助,75
989000
hao50yu楼主2024/11/11 13:55
#include<iostream>
#include<vector>
#include<cstdio>
#include<algorithm>
using namespace std;
#define LL long long
LL cnt1 =1,cnt2=1;
int main(){
    //freopen("P1102_2.in","r",stdin);
    LL n,ansl=0,ansr=0;
    LL c,temp,ans=0;
    cin>>n>>c;
    vector<LL> arr;
    for(LL i=0;i<n;i++){
        cin>>temp;
        arr.push_back(temp);
    }
    sort(arr.begin(),arr.end());
    while(arr[ansr]<c&&ansr<n)ansr++;
    
    for( ;ansr<n;ansr+=cnt2){
        for( ;ansl<ansr&&arr[ansr]-arr[ansl]>=c;ansl+=cnt1){
            cnt1 =1,cnt2=1;
            if(arr[ansr]-arr[ansl]==c){
                while(arr[ansl+cnt1]==arr[ansl])cnt1++;
                while(arr[ansr+cnt2]==arr[ansr])cnt2++;
                ans +=cnt1*cnt2;
            }
        }
    }
    cout<<ans<<endl;
}
2024/11/11 13:55
加载中...