题号:NC288181
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
在博弈游戏中,往往存在长期主义者、短期主义者两种角色
短期主义者就像是一个贪婪无比的短视地精,他只会选择当前步骤中所有局部选择的最优解
长期主义者就好比一个经验丰富的千层饼,他总会选择在每个步骤中选择能达到全局最优的决策,哪怕对于当前阶段可能是亏损的
显然,长期主义者是否明知对方的行动模式,对于他构建自己的全局最优决策存在非常大的影响
在本题中,长期主义者将被明确告知短期主义者的行动模式,他将以此作为已知条件构建他的最优决策
现在有这样一个游戏,有

个整数排成一排,两个人轮流取数,每次只能从两端的数字中选择一个取走
例如一开始有

个数字为

则一开始只能拿

或者

,只有当

或者

被取走后才能拿到中间的
短期主义者总是选择两端中较大的数字,并且如果两数相同,则选择最左端的数字,而长期主义者(已知对方的行动模式)总是选择对于全局最优的决策
两人均以
最大化自己的得分为目标,假设短期主义者先手,则最终二者博弈的得分各自是多少?
输入描述:
第一行输入一个正整数
表示整数的个数
接下来另起一行,输入
个正整数
表示这一排整数的内容
输出描述:
在一行内输出两个整数,分别表示短期主义者、长期主义者的得分,整数之间用一个空格隔开