| 题目名称 | 4239. 引爆炸弹2 |
|---|---|
| 输入输出 | bomb.in/out |
| 难度等级 | ★★★ |
| 时间限制 | 1000 ms (1 s) |
| 内存限制 | 512 MiB |
| 测试数据 | 10 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:2, 提交:3, 通过率:66.67% | ||||
|
|
100 | 0.590 s | 17.22 MiB | C++ |
|
|
100 | 0.607 s | 17.23 MiB | C++ |
|
|
0 | 0.606 s | 17.21 MiB | C++ |
| 关于 引爆炸弹2 的近10条评论(全部评论) |
|---|
本题为引爆炸弹的升级版
现有 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$