atcoder#AGC053A. [AGC053A] >< again

[AGC053A] >< again

题目描述

長さ N N の文字列 S S があります。S S の各文字は < または > です。

要素数 N+1 N+1 の非負整数列 X0,X1,,XN X_0,X_1,\ldots,X_N は、すべての 1  i  N 1\ \leq\ i\ \leq\ N について次の条件を満たすとき 良い非負整数列 と呼ばれます。

  • Si S_i < のとき : Xi1 < Xi X_{i-1}\ <\ X_i
  • Si S_i > のとき : Xi1 > Xi X_{i-1}\ >\ X_i

良い非負整数列 A A が与えられるので、この数列をできるだけ多くの良い非負整数列に分解してください。 つまり、正の整数 k k および k k 個の良い非負整数列 B1,B2,, Bk B_1,B_2,\ldots,\ B_k であって、次の条件を満たすもののうち、 k k が最大のものを 1 1 つ求めてください。

  • すべての 0  i  N 0\ \leq\ i\ \leq\ N について B1,,Bk B_1,\ldots,B_k i i 項目の値の合計は Ai A_i と等しい。

输入格式

入力は以下の形式で標準入力から与えられる。

N N S S A0 A_0 A1 A_1 \cdots AN A_N

输出格式

以下の形式で、標準出力に出力せよ。

k k B1,0 B_{1,0} B1,1 B_{1,1} \cdots B1,N B_{1,N} : : Bk,0 B_{k,0} Bk,1 B_{k,1} \cdots Bk,N B_{k,N}

ここで、Bi,j B_{i,j} は良い非負整数列 Bi B_i j j 項目の値を表している。

题目大意

给定长为 nn 的字符串 SS,其由 <> 组成。

我们称一个长度为 n+1n+1 的非负整数序列 x=(x0,x1,,xn)x=(x_0,x_1,\dots,x_n) 是好的,当且仅当对于任意 1in1\le i\le n,有:

  • SiS_i<,则 xi1<xix_{i-1} < x_i
  • SiS_i>,则 xi1>xix_{i-1} > x_i

给定一个好的非负整数序列 AA,你需要将其拆分为尽可能多的好的非负整数序列。具体地说,你需要找到正整数 kk 以及 kk 个好的非负整数序列 B1,B2,,BkB_1,B_2,\dots,B_k,满足对于任意 0in0\le i \le nj=1kBj,i=Ai\sum_{j=1}^k B_{j,i} = A_i

你需要最大化 kk 的值。输出这个值,以及你所构造的 kk 个长度为 n+1n + 1 的串。
如果有多组解,输出任意一组即可。

1n100,0ai1041\le n \le 100, 0\le a_i\le 10^4

3
<><
3 8 6 10
2
1 5 4 7
2 3 2 3

提示

制約

  • 1  N  100 1\ \leq\ N\ \leq\ 100
  • 0  Ai  104 0\ \leq\ A_i\ \leq\ 10^4
  • S S <> からなる長さ N N の文字列である。
  • A A は良い非負整数列である。特に、要素数は N+1 N+1 である。