#P1788. [NOI2001] 陨石的秘密

[NOI2001] 陨石的秘密

题目描述

公元 1138011380 年,一颗巨大的陨石坠落在南极。于是,灾难降临了,地球上出现了一系列反常的现象。当人们焦急万分的时候,一支中国科学家组成的南极考察队赶到了出事地点。经过一番侦察,科学家们发现陨石上刻有若干行密文,每一行都包含 55 个整数:

1 1 1 1 6
0 0 6 3 57
8 0 11 3 2845

著名的科学家 SS 发现,这些密文实际上是一种复杂运算的结果。为了便于大家理解这种运算,他定义了一种 SS 表达式:

  1. SS 表达式是仅由 {}[]() 组成的字符串。
  2. 一个空串是 SS 表达式。
  3. 如果 AA 是 SS 表达式,且 AA 中不含字符 {}[],则 (A)(A) 是 SS 表达式。
  4. 如果 AA 是 SS 表达式,且 AA 中不含字符 {},则 [A][A] 是 SS 表达式。
  5. 如果 AA 是 SS 表达式,则 {A}\{A\} 是 SS 表达式。
  6. 如果 AABB 都是 SS 表达式,则 ABAB 也是 SS 表达式。

一个 SS 表达式 EE 的深度 D(E)D(E) 定义如下:

$$\scriptstyle{ D(E) = \begin{cases} \scriptstyle{0}, & \scriptstyle{\text{如果 } E \text{ 是空串}} \\ \scriptstyle{D(A) + 1}, & \scriptstyle{\text{如果 } E = (A) \text{ 或者 } E = [A] \text{ 或者 } E = \{A\}, \text{ 其中 } A \text{ 是 SS 表达式}} \\ \scriptstyle{\max(D(A), D(B))}, & \scriptstyle{\text{ 如果 } E = AB, \text{其中 } A, B \text{ 是 SS 表达式}} \end{cases} } $$

例如 (){()}[] 的深度为 22

密文中的复杂运算是这样进行的:设密文中每行前 44 个数依次为 L1,L2,L3,DL_1, L_2, L_3, D,求出所有深度为 DD,含有 L1L_1{}L2L_2[]L3L_3() 的 SS 串的个数,并用这个数对当前的年份 1138011380 求余数,这个余数就是密文中每行的第 55 个数,我们称之为 “神秘数”。

密文中某些行的第五个数已经模糊不清,而这些数字正是揭开陨石秘密的钥匙。现在科学家们聘请你来计算这个神秘数。

输入格式

共一行,44 个整数 L1,L2,L3,DL_1, L_2, L_3, D。相邻两个数之间用一个空格分隔。0L1,L2,L3100 \le L_1, L_2, L_3 \le 100D300 \le D \le 30

输出格式

共一行,包含一个整数,即神秘数。

1 1 1 2
8