#P1189. 序列划分

序列划分

由于某些原因,本体暂不开启捆绑。

善良的 Greenzhe_qwq 把捆绑配好了(我才不会告诉你是 kele7 不会弄子任务)

题目描述

你有一个 nn 个数的序列 {ai}\lbrace a_i\rbrace,你需要将序列划分为若干段,保证每一段的长度为 1122。定义每一段的权值是段内数的和,你需要最小化所有权值的极差。

输入格式

第一行一个正整数 nn 表示猫猫的个数。

第二行 nn 个正整数 aia_i 表示第 ii 只猫猫的可爱程度。

输出格式

一行一个正整数表示答案。

样例 1

10
8 6 3 4 9 2 7 2 9 3
6

样例解释 1

分组方式为 [8],[6],[3,4],[9,2],[7,2],[9,3][8],[6],[3,4],[9,2],[7,2],[9,3],此时 b1=8,b2=6,b3=7,b4=11,b5=9,b6=12b_1=8,b_2=6,b_3=7,b_4=11,b_5=9,b_6=12。此时极差为 b6b2=126=6b_6-b_2=12-6=6

样例 2/3/4

见下发文件中 cccix/cccix*.incccix/cccix*.out

数据范围

本题采用捆绑测试。

  • Subtask 1(5 pts):n5n\leq 5
  • Subtask 2(5 pts):aia_i 均相等。
  • Subtask 3(15 pts):n15n \leq 15
  • Subtask 4(25 pts):n103n \leq 10^3
  • Subtask 5(50 pts):无特殊限制。

对于所有数据,1n1051 \leq n \leq 10^51ai1091 \leq a_i \leq 10^9