#1538. 珅泽教育CSP-J第一轮模拟考第三套 第 22 题

珅泽教育CSP-J第一轮模拟考第三套 第 22 题

第2题

#include<iostream>
#include<algorithm>
int main()
{
    int n, d;
    std::cin >> n >> d;
    int x[n];
    for (int i = 0; i < n; ++i) {
        std::cin >> x[i];
    }
    std::sort(x, x + n);
    long long pair = 0;
    int j = 1;
    for (int i = 0; i < n; ++i) {
        while (j < n and x[j] - x[i] <= d) {
            j++;
        }
        pair += j - i - 1;
    }
    std::cout << pair << "\n";
}

若输入数据已按升序排列,删除 std::sort(x, x + n); 后程序仍能正确输出结果。

{{ select(1) }}

  • 正确
  • 错误