一道二分题,73分求助!!!多谢!

P1102 A-B 数对

@[LukeSu](/user/593753) 建议把C开大一点,看是不是丢精度了
by 编码落寞 @ 2022-04-02 16:16:00


@[编码落寞](/user/557751) 我改了下,现在92分了: ```cpp #include<bits/stdc++.h> using namespace std; #define int unsigned long long int a[111111111]; signed main(){ cin.tie(0)->sync_with_stdio(false); int N, C, ans1 = 0, ans2 = 0, res = 0; cin >> N >> C; for(int i = 1; i <= N; i++){ cin >> a[i]; } sort(a + 1, a + N + 1); for(int i = 1; i <= N; i++){ int l = i + 1, r = N; while(l < r){ int mid = l + r + 1 >> 1; if(a[mid] <= a[i] + C) l = mid; else r = mid - 1; } ans1 = r; l = i + 1, r = N; while(l < r){ int mid = l + r + 1 >> 1; if(a[mid] < a[i] + C) l = mid; else r = mid - 1; } ans2 = r; res += (ans1 - ans2); } cout << res; return 0; } ```
by LukeSu @ 2022-04-02 16:44:06


|