求助

P1102 A-B 数对

@[quning](/user/1064136) 能给个代码吗? 代码看不到 QAQ
by jiangchen1234 @ 2023-12-12 21:03:30


``` #include<bits/stdc++.h> using namespace std; long long N,C,a[1000000]; long long j=0,ans,t,y; int main(){ cin>>N>>C; for(int i=1;i<=N;i++) cin>>a[i]; sort(a,a+N+1); for(int i=1;i<=N;i++){ if(a[i]==a[i-1]) ans+=y,j--; else{ y=0; t=a[i]+C; while(a[i+1+j]<=t){ if(a[i+1+j]==t){ y++; } j++; }j--; ans+=y; } } cout<<ans; } ```
by quning @ 2023-12-12 21:28:59


@[jiangchen1234](/user/872579)
by quning @ 2023-12-12 21:30:31


@[quning](/user/1064136) ![](https://cdn.luogu.com.cn/upload/image_hosting/ektviwik.png) ```cpp #include<bits/stdc++.h> using namespace std; long long N,C,a[1000000]; long long j=0,ans,t,y; int main() { cin>>N>>C; for(int i=1; i<=N; i++) cin>>a[i]; sort(a,a+N+1); for(int i=1; i<=N; i++) { if(a[i]==a[i-1]) { ans+=y,j--; cout<<"j:"<<j<<endl; } else { y=0; t=a[i]+C; while(a[i+1+j]<=t) { if(a[i+1+j]==t) { y++; } j++; } j--; cout<<"i:"<<i<<" j:"<<j<<endl; ans+=y; } } cout<<ans; } ```
by jiangchen1234 @ 2023-12-12 21:47:22


@[quning](/user/1064136) 越界了吧
by jiangchen1234 @ 2023-12-12 21:47:50


@[quning](/user/1064136) 要加 $j \le n$ ```cpp #include<bits/stdc++.h> using namespace std; long long N,C,a[1000000]; long long j=0,ans,t,y; int main() { cin>>N>>C; for(int i=1; i<=N; i++) cin>>a[i]; sort(a,a+N+1); for(int i=1; i<=N; i++) { if(a[i]==a[i-1]) { ans+=y,j--; } else { y=0; t=a[i]+C; while(a[i+1+j]<=t) { if(j > N) break; if(a[i+1+j]==t) { y++; } j++; } j--; ans+=y; } } cout<<ans; } ```
by jiangchen1234 @ 2023-12-12 21:51:15


@[jiangchen1234](/user/872579) 谢谢
by quning @ 2023-12-14 19:59:07


@[quning](/user/1064136) 不用谢
by jiangchen1234 @ 2023-12-14 20:02:45


|