K - K-rep Array
解説
/
/
実行時間制限: 2 sec / メモリ制限: 1024 MiB
配点 : 100 点
問題文
正整数 K について、正整数からなる数列 V が K-rep であるとは以下の条件を満たすこととします。
- 正整数からなる長さ K の数列 B が存在して、B を 10^{100} 回繰り返した数列 B' が連続部分列として V を含む。
各要素が正整数または -1 である、長さ N の数列 A = (A_1, A_2, \ldots, A_N) が与えられます。K = 1, 2, \ldots, N について、以下の問題を解いてください。
正整数からなる長さ N の数列 V = ( V_1, V_2, \dots, V_N ) であって、A_i \neq -1 ならば V_i = A_i を満たすもののうち、K-rep であるものが存在するか判定してください。
制約
- 入力は全て整数
- 1 \leq N \leq 2\times 10^5
- 1 \leq A_i \leq N または A_i = -1
入力
入力は以下の形式で標準入力から与えられる。
N A_1 \ A_2 \ \dots \ A_N
出力
長さ N の文字列を出力せよ。i 文字目は K = i とした場合の問題について、条件を満たす数列が存在するとき 1 と、存在しないとき 0 とせよ。
入力例 1
5 1 2 -1 2 1
出力例 1
01011
正整数からなる長さ N の数列 V = ( V_1, V_2, \dots, V_N ) であって、A_i \neq -1 ならば V_i = A_i を満たすものの 1 つとして V = (1, 2, 3, 2, 1) があります。K = 4 について、B = (2, 3, 2, 1) とすると B' は連続部分列として (1, 2, 3, 2, 1) を含むため (1, 2, 3, 2, 1) は K-rep です。