AT_codefestival_2015_final_j N個のバケツ

题目描述

高桥君准备参加一个名为「桶节」的比赛。在这个节日中,有许多使用水桶进行的项目,高桥君选择了一个考验力量的项目,名为「$ N $ 个水桶」。 这个项目的规则如下: - 每队由 $ N $ 名成员组成,每名成员都有一个编号,从 $ 1 $ 到 $ N $。 - 他们按编号顺时针站成一个圈,这样,第 $ i $ 号和 $ i+1 $ 号成员,以及第 $ N $ 号和第 $ 1 $ 号成员就彼此相邻。 - 相邻的两名成员之间放置一个装有水的水桶,水桶的总数为 $ N $。队伍可以根据策略决定每个水桶中放多少水,但水量必须是整数。 - 每名队员需举起他两侧的水桶。两个水桶都需要两名邻近队员共同协作才能举起。如果所有 $ N $ 个水桶都被成功举起,则比赛成功,而水桶中水的总重量就是队伍的得分。 为了能得到最大的分数,高桥君需要决定水桶内的水量分配。为此,他先测量了每名队员的力量,已知第 $ i $ 号成员的力量为 $ S_i $。一个力量值为 $ p $ 的成员能够举起两侧的水桶,当且仅当这两个水桶内水量的平均值不超过 $ p $。具体来说,如果两桶水的量分别是 $ w $ 和 $ v $,那么应满足条件 $(w+v)/2 \le p$。 由于高桥君的队伍是临时组建的,成员可能会更换。比赛期间共有 $ Q $ 次成员变更。在第 $ i $ 次变更中,第 $ P_i $ 号成员被替换为力量为 $ X_i $ 的新成员。在每次变更之后,请计算出队伍可以达成的最大得分。

输入格式

输入从标准输入中给出,格式如下: > $ N $ $ S_1 $ $ S_2 $ ... $ S_N $ $ Q $ $ P_1 $ $ X_1 $ $ P_2 $ $ X_2 $ : $ P_Q $ $ X_Q $ - 第一行包含一个整数 $ N\ (3 \le N \le 10^5) $,表示参赛人数。**在保证 100 分数据集的测试用例中,$ N $ 是偶数。** - 第二行包含 $ N $ 个整数,表示初始队员的力量。其中第 $ i $ 个整数 $ S_i\ (0 \le S_i \le 10^4) $ 表示第 $ i $ 号成员的力量。 - 第三行包含整数 $ Q\ (1 \le Q \le 10^5) $,表示成员变更的次数。 - 接下来的 $ Q $ 行中,每行包含两个整数 $ P_i\ (1 \le P_i \le N) $ 和 $ X_i\ (0 \le X_i \le 10^4) $,表示在第 $ i $ 次变更中,第 $ P_i $ 号成员被替换为新力量为 $ X_i $ 的成员。

输出格式

输出包括 $ Q $ 行。每行表示一次成员变更后的最大得分。输出的每行末尾应有一个换行符。

说明/提示

### 额外得分 本题目有额外得分: - 如果你能准确计算 $ N $ 为奇数的数据集,你将获得额外的 1 分。 即使不拿额外分,也能通过 100 分的数据集,即算通过本题。 **本翻译由 AI 自动生成**