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

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

第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";
}

关于变量 pair 的类型,以下说法最准确的是( )。

{{ select(1) }}

  • 使用 int 足够,因为 n100000n\le100000,点对数不超过 5000000050000000
  • 使用 long long 是必要的,因为 n=100000n=100000 时,点对数最大可能达到约 5050 亿,超过 int 的表示范围。
  • 使用 long long 是必要的,因为坐标值可能很大。
  • 使用 long long 是必要的,因为 d 可能很大。