#11933. 纸牌游戏

纸牌游戏

🃏 问题:纸牌游戏

📘 题目描述

侯赛因和雅罗斯拉夫在玩一个回合制的纸牌游戏。

  • 桌子上放着 n 张牌,排成一行。
  • 每张牌上写着一个不同的正整数。
  • 两人轮流拿牌,侯赛因先手。
  • 每一轮,玩家可以选择最左边最右边的牌,但必须选出其中​数值较大的一张​​。
  • 游戏持续至所有牌被拿完为止。

请输出游戏结束后,侯赛因​雅罗斯拉夫各自拿到的牌上的总和。


📥 输入格式

  • 第一行一个整数 n(1 ≤ n ≤ 10000)表示牌的数量。
  • 第二行 n 个正整数,代表每张牌的数字,牌的数字 ≤ 10^9。

📤 输出格式

输出两行:

  • 第 1 行:侯赛因最终拿到的数字之和。
  • 第 2 行:雅罗斯拉夫最终拿到的数字之和。

🧪 输入样例

7
4 7 5 1 12 8 2

✅ 输出样例

18
21

🧠 思路解析

  • 使用双指针模拟从两端取牌。
  • 每一轮比较 a[l]a[r],取较大者,并加到当前玩家的总和中。
  • 轮流切换当前玩家。

🧠 时间复杂度分析

  • 每次操作只移动一个指针(左或右),操作次数为 n
  • 时间复杂度:O(n),空间复杂度:O(1)