#P50809. 「BalticOI 2015」黑客

「BalticOI 2015」黑客

题目描述

题目译自 BalticOI 2015 Day2 Hacker(HAC),原题面见附加文件。
如欲转载翻译,请注明翻译者信息及转载出处。

黑客 Byteasar 获得了参加今年 IHO,即国际黑客奥林匹克竞赛(International Hacker Olympiad)的机会。比赛的一个任务是与一个系统操作者对抗。有 nn 台从 11nn 编号的计算机,连接成了一个环,即编号为 ii 的计算机与编号为 i+1i+1 的计算机相连(对于 i=1,2,3,,n1i=1,2,3,\cdots,n-1),编号为 nn 的计算机与编号为 11 的计算机相连。 这场比赛以一个系统操作者与黑客的游戏进行。

  • Byteasar 先操作,之后,系统操作者和 Byteasar 交替操作;
  • 第一次操作时,Byteasar 可以选择任一计算机然后黑掉它(例如,找寻一些操作系统的漏洞);
  • 第一次操作时,操作者可以选择任一没有被黑的电脑,然后保护它(例如,安装最新的安全更新);
  • 在所有接下来的操作中,Byteasar 要么什么都不做 (a),要么选择既没有被黑也没有被保护,同时和被黑的电脑直接相连的电脑(b),然后黑掉它;
  • 在所有接下来的操作中,操作者要么什么都不做(a),要么选择既没有被黑也没有被保护,同时和被保护的电脑直接相连的电脑(b),然后保护它;
  • 当双方在相邻的两个操作中都选择什么都不做,这个游戏结束。

在游戏开始,没有电脑被黑,也没有电脑被保护。

每台电脑都有一个特定的价值 viv_i,表示存储在其中的数据的价值。对于每一个被黑的电脑 ii,Byteasar 获得它的价值 viv_i 分。Byteasar 是一个十分出色的黑客,但是他不会算法。这就是他请你写一个程序去计算他的最大可能得分的原因。假设系统操作者永远采用最佳策略。

输入格式

输入的第一行包含一个正整数 nn,表示计算机台数。第二行是一个 nn 个正整数的序列 viv_iviv_i 表示计算机 ii 上存储的数据价值。

输出格式

一行一个整数,表示 Byteasar 获得的最大可能得分。

样例

样例输入 1

4
7 6 8 4

样例输出 1

13

样例说明

第一个样例中,Byteasar 第一个黑掉的电脑是 22 号(获得 66 分)。作为回应,系统操作者会保护电脑 33。在接下来的操作中,Byteasar 会黑点电脑 11(获得 77 分)。最后,操作者会保护电脑 44

样例输入/输出 2

详见附加文件 hac_sample2.in/ans

数据范围与提示

本题采用子任务式测评,只有一个子任务内所有测试点均正确才可获得此子任务的分数。

对于全部子任务,n2,1vi2×103n\ge 2,1\le v_i\le 2\times 10^3

对于每个子任务满足的条件如下:

子任务 条件 分数
11 n300n\le 300 2020
22 n5×103n\le 5\times 10^3
33 n5×105n\le 5\times 10^5,且第一次操作中,Byteasar 黑掉电脑 11 是最优的。
44 n5×105n\le 5\times 10^5 4040