字节题--万万没想到之抓捕孔连顺

万万没想到之抓捕孔连顺_字节跳动2019春招研发部分编程题汇总_牛客网
在这里插入图片描述
在这里插入图片描述

#include <vector>
#include <iostream>

using namespace std;

long C(long n){
    return (n-1) * n / 2;
}

int main()
{
	int n, d;
	cin >> n >> d;
	vector<int> pos(n, 0);
    long res = 0;
	for (int i = 0, j = 0; i < n; ++i){
        cin >> pos[i];
        //对于每一个i,如果满足要求,就在它的前面(满足要求的区间内)选取两个来和它组合
        while(i >= 2 && pos[i] - pos[j] > d){
            ++j;
        }
        //如果前面至少有两个可选元素的话
        if(i-j >= 2) res += C(i-j);
    }	
	cout << res % 99997867 << endl;
	return 0;
}

注意大数的处理,使用函数进行计算(参数转化为long类型)。

另外:

浮点错误: 您的程序运行时发生浮点错误,比如遇到了除以 0 的情况

可能因为:

出现了一个数除以0的情况
出现了一个数取余0的情况
发生了数据溢出而导致的除以0或者取余0的情况

这题里一开始也碰到了,可以将分子*1.0来解决。

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页