C++超难题目代码!哪位牛人可以写出来?

【问题描述】
小明对诺贝尔很着迷,不是获得诺贝尔奖,而是诺贝尔发明的炸药。他怀着与诺贝尔同样的理想,
希望使用炸药造福社会。最近,山区要修一条公路,他们请小明作为爆破总指挥,使用炸药来削平
山峰。
考虑要修一条笔直的公路,小明请工人沿一条直线埋设了 n 颗炸弹,但是由于工人工作不认真,这
些炸弹未必能全部引爆。小明设计的爆破方案叫做连锁炸弹反应,引爆第一个炸弹,爆炸范围为
1,可以引爆该范围的其他炸弹(将距离炸弹两侧距离 1 以内的炸弹引爆),第二轮炸弹的爆炸范围
为 2,可以引爆该范围内的炸弹,每轮爆炸的炸弹范围递增 1。如果当前炸弹可以引爆一侧的多枚炸
弹,这几枚炸弹相当于同时爆炸,不存在另外一轮引爆,从而令爆炸范围持续增大的情况。现在小
明想知道,最多可以通过连锁炸弹反应引爆多少棵炸弹。
【输入格式】输入文件 blast.in
输入的第一行包含一个整数 n,n 表示炸弹数量。1≤n≤100。
接下来 N 行,每行一个整数,表示炸弹所在的位置 xi,0≤xi≤109。
【输出格式】输出文件 blast.out
输出一个整数,小明可以引爆的炸弹数量最多是多少。