这个问题可以通过使用哈希表来解决。我们可以遍历整个序列,对于每个元素,我们检查它加上C和减去C的元素是否在哈希表中,如果在,我们就找到了一个满足条件的数对。然后我们将当前元素加入哈希表。最后,哈希表中的每个元素的值就是满足条件的数对的数量。
以下是C++代码实现:
#include <iostream>
#include <map>
using namespace std;int main() {int N, C;cin >> N >> C;map<int, int> num_map;int count = 0;for (int i = 0; i < N; i++) {int num;cin >> num;if (num_map.count(num - C)) {count += num_map[num - C];}if (num_map.count(num + C)) {count += num_map[num + C];}num_map[num]++;}cout << count << endl;return 0;
}
在这段代码中,我们首先读取输入的N和C,然后初始化一个哈希表和一个计数器。然后我们遍历整个序列,对于每个元素,我们检查它加上C和减去C的元素是否在哈希表中,如果在,我们就增加计数器的值。然后我们将当前元素加入哈希表。最后,我们输出计数器的值,即满足条件的数对的数量。