为什么这俩基本上一样的代码,一个能过一个会超时仨
  • 板块P1102 A-B 数对
  • 楼主zuilp
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/2 19:14
  • 上次更新2024/8/2 20:34:44
查看原帖
为什么这俩基本上一样的代码,一个能过一个会超时仨
1165831
zuilp楼主2024/8/2 19:14
#include <bits/stdc++.h>
    int arr[100005];
using namespace std;
int main(){
    int n,c=1;
    long long ans=0;
    cin>>n>>c;
    for(int i=0;i<n;i++) cin>>arr[i];
    sort(arr,arr+n);
    arr[n]=10000000;
    int l, r1=0,r2=0;
	for( l = 0 ; l < n ; l ++) {
		while(r1 <= n && arr[r1] - arr[l] <= c) r1 ++;
		while(r2 <= n && arr[r2] - arr[l] < c ) r2 ++;
	
			ans += r1 - r2;
	}
    cout<<ans;
}
#include <bits/stdc++.h>
const int N=1000005;
    int arr[N];
using namespace std;
int main(){
    int n,c=1;
    long long ans=0;
    cin>>n>>c;
    for(int i=0;i<n;i++) cin>>arr[i];
    sort(arr,arr+n);
    arr[n]=10000000;
    int l, r1=0,r2=0;
	for( l = 0 ; l < n ; l ++) {
		while(r1 <= n && arr[r1] - arr[l] <= c) r1 ++;
		while(r2 <= n && arr[r2] - arr[l] < c ) r2 ++;
	
			ans += r1 - r2;
	}
    cout<<ans;
}
2024/8/2 19:14
加载中...