#P1770. Special Experiment
Special Experiment
描述
众所周知,一个原子可以处于不同的能量状态(或“能级”)。通常情况下,当它从较高的能量状态跃迁到较低的能量状态时,会发射出一个光子,该光子的能量等于这两个状态之间的能量差。吸收光子则是相反的过程。如果一个能量等于原子两个状态之间能量差的光子经过,它可能会被吸收,其能量会使原子处于更高的能级。对于大多数元素,原子可以通过仅发射或吸收一个光子,在任意两个状态之间直接跃迁。但科学家们对他们最近发现的一种新元素感到困惑。对于某些特定的两个能量状态,这种元素的原子可以直接在它们之间跃迁(发射或吸收且仅吸收一个光子),但对于其他一些能量状态对,原子则不能。
一般来说,当原子在能量状态之间依次跃迁时,会产生一系列事件(发射或吸收光子)。例如,当从能量状态跃迁到时,原子遵循以下序列:
, , , ..., , ...,
其中()表示某个特定的能量状态。在从跃迁到的过程中,会严格地发射或吸收一个光子。
该原子可以在任意能量状态间进行跃迁。但如前所述,某些能量状态对之间无法直接跃迁。更重要的是,当能量状态发生变化时(例如从到),它必须遵循唯一的序列,,,...,。而最有趣的是,当它从反向跃迁回时,必须遵循另一个唯一序列,...,,,——你会发现这正是前一个序列的逆序!没错,这难道不特殊吗?
现在,科学家们今天需要你的帮助。在一个实验中,这种新元素的一些原子将被放入一个容器中。如果任意两个原子满足以下条件之一,它们将被视为“危险原子”:
- 它们处于相同的能量状态。
- 它们处于不同的能量状态。但如果其中一个发射或吸收一个光子,它们也将处于相同的状态。
你必须确保这个容器中没有危险原子。并且容器中原子的总能量越高,实验就越容易成功。
现在,科学家们已经告诉你这种元素的原子能够发射或吸收的所有光子,以及所有原子状态的能量。他们要求你计算容器中原子能够达到的最高总能量。
输入
输入中包含多个测试用例。每个测试用例以包含两个整数、()的行开始,分别表示能级数量和这种原子可以发射或吸收的不同光子数量。这两个数字之后恰好有行,每行包含一个正整数。这个正整数不大于。前个不同的整数是原子在个不同能态下的能量,按升序排列。接下来的个整数对应这种元素的原子可以发射或吸收的个不同光子的能量。如果任意两个能态的能量差等于个光子中某一个的能量,原子就可以直接在这两个能态之间跃迁。
两个数据集之间没有空行。最后一个测试用例之后是包含两个零的行。
输出
对于每个测试用例,输出一行包含一个整数,该整数表示容器中原子能够达到的最高总能量。任意两个用例之间不应有空行。
输入数据 1
3 1
2
4
6
2
0 0
输出数据 1
8
来源 2003 年亚洲广州赛区竞赛