CF1272E.Nearest Opposite Parity

传统题 时间 2000 ms 内存 256 MiB 10 尝试 1 已通过 1 标签

Nearest Opposite Parity

CF1272E · Nearest Opposite Parity

中文题意

给定一个由 nn 个整数组成的数组 aa。一次移动中,你可以从位置 ii 跳到位置 iaii - a_i(若 1iai1 \le i - a_i)或位置 i+aii + a_i(若 i+aini + a_i \le n)。

对每个位置 ii11nn),你想知道到达任意一个位置 jj(使得 aja_jaia_i 奇偶性相反,即 aia_i 为奇数时 aja_j 需为偶数,反之亦然)所需的最少移动次数。

输入格式(中文)

第一行一个整数 nn1n21051 \le n \le 2 \cdot 10^5),表示 aa 中的元素个数。

第二行 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ain1 \le a_i \le n),其中 aia_iaa 的第 ii 个元素。

输出格式(中文)

输出 nn 个整数 d1,d2,,dnd_1, d_2, \dots, d_n,其中 did_i 为到达任意一个 aja_jaia_i 奇偶性相反的位置 jj 所需的最少移动次数;若无法到达这样的位置,则输出 1-1

样例

样例 1

输入:

10
4 5 7 6 7 5 4 4 6 4

输出:

1 1 1 2 -1 1 1 3 1 1 

在线编程 IDE

建议全屏模式获得最佳体验