#P17480. 平衡分割

平衡分割

题目描述

给定一个长度为 nn 的字符串,其中每个字符都是一个十六进制数位。例如,字符串 016A 表示十进制下的四个数 0,1,6,100,1,6,10。

现在请选择 kk 个(kk 是你选定的数)切分位置 p1,p2,…,pkp_1,p_2,\ldots,p_k,其中 1≤k<n1\le k<n,且 1≤p1<p2<⋯<pk<n1\le p_1<p_2<\cdots<p_k<n。再令 p0=0p_0=0,pk+1=np_{k+1}=n。

对于每个 0≤i≤k0\le i\le k,计算第 pi+1p_i+1 个数到第 pi+1p_{i+1} 个数的平均值,记作 bib_i。你的目标是使 b0,b1,…,bkb_0,b_1,\ldots,b_k 中最大值与最小值之差尽可能小,并输出这个最小值。

输入格式

第一行包含一个整数 nn,表示字符串的长度。

第二行包含一个长度为 nn 的字符串。

输出格式

输出一行,包含一个实数,表示 b0,b1,…,bkb_0,b_1,\dots,b_k 中最大值与最小值之差的最小值。输出答案时保留小数点后 66 位。允许相对或者绝对误差不超过 10−610^{-6}。

4
016A
5.666667

提示

数据保证,2≤n≤202\le n\le20。输入字符串中的字符只可能是 0—9 或 A—F。本题假定字符采用 ASCII 编码。