题目名称 4239. 引爆炸弹2
输入输出 bomb.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatar李金泽 于2025-12-20加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:2, 提交:3, 通过率:66.67%
Gravatar李金泽 100 0.590 s 17.22 MiB C++
Gravatar李金泽 100 0.607 s 17.23 MiB C++
Gravatar李金泽 0 0.606 s 17.21 MiB C++
关于 引爆炸弹2 的近10条评论(全部评论)

4239. 引爆炸弹2

★★★   输入文件:bomb.in   输出文件:bomb.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目背景】

本题为引爆炸弹的升级版

【题目描述】

现有 n 个炸弹,第 i 个炸弹的位置为 $a_i$,爆炸半径为 $r_i$。保证对于任意$1≤i<n$,都有$a_i≤a_{i+1}$。当某个炸弹被引爆时,会触发连锁反应:所有位置落在区间 $[a_i - r_i, a_i + r_i]$ 内的炸弹都会被引爆;而被引爆的炸弹又会以相同规则触发新的连锁反应,直至没有更多炸弹可被引爆。请你分别求出引爆第i个炸弹后能引爆的炸弹数量。

【输入格式】

第一行输入一个整数 n,表示炸弹的总数;  

第二行输入 n 个整数,依次表示每个炸弹的位置 a[1], a[2], ..., a[n];  

第三行输入 n 个整数,依次表示每个炸弹的爆炸半径 r[1], r[2], ..., r[n]。

【输出格式】

输出一行n个整数,第i个数表示引爆炸弹i能引爆的炸弹数量。

【样例输入】

4  

2 5 7 8  

3 1 4 0

【样例输出】

2 1 3 1

【数据规模与约定】

对于 30% 数据,$n≤100$   

对于 50% 数据,$n≤5*10^3$    

对于 100% 数据,$1≤n≤10^5$,$0≤|a_i|$,$r_i≤10^9$