#HK5203. 「UOI 2025 Stage 4 Day1」分成三组

「UOI 2025 Stage 4 Day1」分成三组

题目描述

题目译自 Ukrainian Olympiads in Informatics 2025 Stage 4 Day1 T2. Розбиття на три

在一个圆环上放置了 nn非负整数 a1,a2,,ana_1, a_2, \ldots, a_n。在圆环上相邻的数字依次为 a1a_1a2a_2a2a_2a3a_3、……、an1a_{n-1}ana_n,以及 ana_na1a_1

你需要将这些数字分成三个非空的组,使得每个数字恰好属于一个组,同一组的数字在圆环上必须是连续排列的,并且三个组的数字总和的最大值与最小值之间的差值尽可能小。

输入格式

输入的第一行包含一个整数 nn (3n106)(3 \le n \le 10^6),表示圆环上数字的数量。

第二行包含 nn 个非负整数 a1,a2,,ana_1, a_2, \ldots, a_n (0ai109)(0 \le a_i \le 10^9),表示圆环上依次排列的数字。

输出格式

输出第一行包含一个整数,表示在最优分组下,三个组的数字总和的最大值与最小值之间的差值。

输出第二行包含三个整数 x,y,zx, y, z (1x<y<zn)(1 \le x < y < z \le n),表示最优分组的划分方式,即三个组分别为 [ax,ax+1,,ay1][a_{x}, a_{x+1}, \ldots, a_{y-1}][ay,ay+1,,az1][a_{y}, a_{y+1}, \ldots, a_{z-1}] 和 $[a_{z}, a_{z+1}, \ldots, a_{n-1}, a_{n}, a_{1}, a_{2}, \ldots, a_{x-1}]$。

如果存在多个正确答案,可以输出任意一个。

4
1 2 3 4

1
1 3 4

7
1 6 1 0 5 3 2

0
2 3 6

8
3 1 4 1 5 9 2 6

1
3 6 8

在第三个样例中,最优分组如下:

在这种情况下,三个组的数字总和分别为 101011111010

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制
11 22 n=3n = 3
22 44 ai1a_i \le 1(对于 1in1 \le i \le n
33 1313 存在一种分组使得目标差值为 00
44 88 n100n \le 100
55 99 n2000n \le 2000
66 1313 n5000n \le 5000
77 2828 n105n \le 10^5
88 2323 无附加限制