CF67B Restoration of the Permutation

题目描述

给定 $A = \{a_1, a_2, \ldots, a_n\}$,这是前 $n$ 个自然数 $\{1, 2, \ldots, n\}$ 的一个排列。现在给你一个正整数 $k$,以及一个序列 $B = \{b_1, b_2, \ldots, b_n\}$,其中 $b_i$ 表示在 $A$ 中,元素 $a_t = i$ 的左侧,有多少个元素 $a_j$ 满足 $a_j \geq (i + k)$。 例如,如果 $n=5$,一种可能的 $A$ 为 $\{5, 1, 4, 2, 3\}$。对于 $k=2$,$B$ 为 $\{1, 2, 1, 0, 0\}$。但如果 $k=3$,则 $B = \{1, 1, 0, 0, 0\}$。 对于两个序列 $X = \{x_1, x_2, \ldots, x_n\}$ 和 $Y = \{y_1, y_2, \ldots, y_n\}$,若第一个满足 $x_i \neq y_i$ 的位置 $i$ 使得 $x_i < y_i$,则 $X$ 字典序小于 $Y$,反之若 $x_i > y_i$,则 $X$ 字典序大于 $Y$。 现给定 $n$、$k$ 和序列 $B$,请你求出字典序最小的 $A$。

输入格式

第一行包含两个用空格分隔的整数 $n$ 和 $k$,满足 $1 \leq n \leq 1000$,$1 \leq k \leq n$。 第二行包含 $n$ 个整数,表示 $B = \{b_1, b_2, \ldots, b_n\}$。

输出格式

请输出一行 $n$ 个整数,表示字典序最小的 $A = \{a_1, a_2, \ldots, a_n\}$。保证一定有解。

说明/提示

由 ChatGPT 5 翻译