题库/Y1303

#Y1303. 取数字

    传统题 难度: 提高+ 标签>一本通笛卡尔树线段树的建树、点改与区间查询单调栈与最近更大更小
时间限制1000 ms
内存限制128 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

Y1303 · 取数字

退出在线编程模式
提高+ 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制128 MiB
通过率—0 / 0 次提交

题目描述

考虑以下过程: NN 个互不相同的数围成一圈。 两个人从中轮流拿出一个数。 除了第一步以外,每步只能选那些旁边至少有一个空位的数。 有多个时,选较大的。 对于 NN 种第一步情形分别计算这种情况下第一个人拿到的数的总和。

输入

输入的第一行是整数 NN。 第二行有 NN 个整数 AiA_i,按顺序描述了这一圈数。

输出

输出 NN 行,每行一个整数,描述了第一步选择对应的数时先手方最后的总分。

输入样例

3
1 2 3

输出样例

3
3
4

提示

【数据规模和约定】 对于20%的数据,N≤5000N≤5000。 对于另外20%的数据,Ai=iA_i=i。 对于另外30%的数据,数据随机生成。 对于100%的数据,N≤300000,Ai≤109N≤300000,A_i≤10^9。 本题测评时开栈。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共6个测试点,非原站或官方原始数据。总分100分。