问题 4613 --4.I LOVE MUSIC!

4613: 4.I LOVE MUSIC!

题目描述

  背景:

XX中学原创音乐大赛就要开始啦!GEORGE一听到这个消息,就兴奋起来了。
“哈哈!偶也要成为做曲家&演唱家啦” GEORGE心想。
“1 3 5 3 1 3 5 3 1,恩,这调子不错。”
“3 5  6 5 3  这旋律也不错嘛。”  
“可是....怎么把它们组合成一首乐曲呢?”
GEORGE开始为这伤脑筋了。
......对了,用电脑! 让电脑来做曲,看看电脑会写出什么曲子来。
“给电脑下个‘悦耳’音调的定义,效果大概会更好些。”
“要让电脑写的曲子越长越好,这样偶的登台时间就长了。”
“不过也不能太长,至少不能出现3遍单位旋律,否则就变成老和尚念经了”
GEORGE想着想着。
终于决定去做了 。。。   谁知一开机,便中了倒霉的病毒,电脑坏掉了。 
这可怎么办?GEORGE急死了,你能帮助GEORGE吗?

任务:

   给定N个GEORGE想出的单位旋律,并给定GEORGE所谓的悦耳定义,程序
   给出最长的乐谱。

注意:

1.旋律的表示:
  
   采用类似简谱的格式:
   每个音符的格式为
        [#/b] <音符> <音长>
   音符为1,2,3,4,5,6,7(中音区) 
        -1,-2,-3,-4,-5,-6,-7(低音区)
        +1,+2,+3,+4,+5,+6,+7(高音区)
        或 0 (休止符)
     # 为升半度记号  b 为降半度记号  ,可以省略(即不升也不降)
   音长为 e f t o  分别代表八分音符,四分音符,二分音符,全音符
   即  唱 1/8拍, 1/4拍,  1/2拍    1拍
   各个音符之间用一个(仅一个)空格分隔
   如:
   1f 3f 5f 3f 1f 3f 5f 3f 1f 
   #2f 0e b+7t -7o 0f

2.悦耳的定义:
  首先规定度数差:
   1 2 3 4 5 6 7 +1
  其中3 4  以及 7 +1相差为半度(记为0.5),其余相邻的2个音符相差1度
  如    4  6相差  2度  
        3  5相差1度半(写为1.5)
       #1  #2 相差  1度
  当然高音低音也是同理了

  下面介绍相邻单位旋律度数差的概念:
  相邻2个单位旋律(简称旋律A,旋律B,旋律B接在旋律A后)  的相邻音符的度数  差
  (即A的最后一个非0音符与B的第一个非0音符的度数差),简称单位旋律度  数差(输
  入数据中不会出现一个单位旋律中只有休止符的情况)
  例如
  1 3 5 3 1 3 5 3 1 (为简便没写音长)
  后面接 3 5 6 5 3 则度数差为 1 3的度数差 为2
  而
  1 3 5 7 5 3 1 0 后接
  -7 1 2 3 4   相差 为 1 和  -7度数差为半度(这里写为0.5)
  
  GEORGE所规定的悦耳定义是指:   
  GEORGE会在输入文件中给你几个度数差,表示允许的相邻单位旋律度数差.
  当相邻2个单位旋律差为GEORGE给定的度数差之一时,便可以将这2个旋律连接

3.乐谱中的每个单位旋律最多只能用2次(因为用多了听众会觉得厌烦).但可以直接连
  接重复 (例如  A A  B B C C (A,B,C为单位旋律)  )

4.要求所做的乐谱的弹奏时间最长(弹奏时间中包括休止符的时间)

输入

第一行为N   表示  N个GEORGE想出的单位旋律  (1 <= N <= 15)

第2  到  第N+1行为  每个单位旋律的描述
每个单位旋律各占一行
单位旋律的编号依次为1..N
格式即注意中的第1点所说的格式

第N+2行为 数M,表示GEORGE规定悦耳定义的度数差有M个 (1 <= M <= 4)

以下M行分别为GEORGE规定的可取悦耳定义度数差
(为一个范围在0 - 18之前的实数,
这个实数的小数部分或为0,或为0.5(即半度))

输出

仅第1行,为程序做出的最长音乐的弹奏时间(以拍为单位,
比如4个1/4拍即输出1),并且输出格式为最简带分数,

<整数部分>_<分子>/<分母>
_代表空格
如果整数部分为0则只需输出
<分子>/<分母>
如果小数部分为0则只需输出<整数部分>
例:
8
3 1/2
5/8

样例输入输出

输入#1 复制
2
1f 2f 3f 4f 5f 6f 7f +1f 0f
0f +1f 7f 6f 5f 4f 3f 2f 1f
1
0
输出#1 复制
9

提示

序号 标题 作者 发表时间 费用 订购数 操作