在一家创意奶茶店,你是一位顶级的奶茶制作师。
顾客可以定制一杯独一无二的“千层特调”,这杯奶茶由多种口味的配料堆叠而成。
每种配料都有一个特定的风味编号。
你面前有一张初始配方单,详细记录了要依次添加的
层配料的风味编号和它们的添加顺序(从
开始编号)。
这个初始的添加顺序将作为这层配料的身份标识。
例如,初始配方单为 `1 1 2 3 4`,则:
身份标识为
身份标识为
身份标识为
制作过程中,顾客可能会提出一些“升级”请求。每个请求会指定一个配料的身份标识。一旦收到请求,如果该身份标识对应的配料还存在于奶茶中,它就会进入“待升级”状态,并遵循以下规则进行融合:
1. 融合规则 1 :如果某“待升级”的配料层,其下方紧邻的配料层风味编号与它完全相同,那么这两层将融合成一层全新的配料。新配料的风味编号等于原风味编号加 1。
2. 融合规则 2 :新融合的配料层将继承“待升级”状态,并立即尝试与它下方新的相邻层继续融合,这个过程会不断重复,直到它下方没有相同风味的配料,或者它已成为奶茶的最底层。
3. 融合规则 3 :通过融合产生的新配料层是“隐藏款”,它没有身份标识。因此,顾客无法通过指令直接指定它进入“待升级”状态。但是,如果上方的配料层在融合后下沉,变为与它相邻,它依然可以作为被动方参与后续的融合。
完成所有顾客的“升级”请求后,你需要计算这杯“千层特调”最终还剩下多少层配料。
