友情提示:380元/半年,儿童学编程,就上码丁实验室。
【题目描述】
校长给钱主任的分班条件是这样子的:
首先有$M$个学生,分数从高到低已经排序好了。
其次要分成至多$N$个班。
每个班必须要有至少$A$个至多$B$个小朋友。
一个班的学生,他们的分数必须是连在一起的。也就是说,如果第$3$个小朋友和第$5$个小朋友在一间教室,第$4$个小朋友也必须和他们在一起。
校长还给出了一个评定分班好不好的标准。
每个学生有一个敏感指数,$X[i](1≤i≤M)$。并且,有一个变量$Average =sum_{i=1}^Mfrac{X[i]}{M}$。为了方便计算,$Average$ 取下整,注意是先加起来再除,不是每次除再加。
每个教室有一个舒适程度$G[i]$ 。而$g[i]$ 表示的是第$i$个小朋友在哪个教室。
现在校长要求最小化评价指数$sum_{i=1}^{M}(X[i]-Average)^2×G[g[i]]$ 。
【输入】
本题目有多组数据。
第一行有一个整数$case(case≤10)$,表示有$case$组数据。
接下来对于每组数据的第一行有$4$个正整数,依次是$M,N,A,B$。
第二行有$M$个正整数,用空格隔开,分别是$X[1],X[2],…,X[M]$。
第三行有$N$个正整数,用空格隔开,分别是$G[1],G[2],…,G[N]$。
【输出】
对于每组数据,要输出三个正整数,以空格隔开,不同数据之间要换行。
三个正整数分别为$sigma,class,last$。分别表示最小的评价指数。在评价指数最小的情况下,安排的教室的最小数目。在评价指数、安排教师数目最小的情况下,最后一个教室的人数的最小数目。
【输入样例】
1 10 3 1 4 16 11 12 13 10 15 16 17 18 14 4 5 1
【输出样例】
186 3 4
【提示】
【样例解释】
前4个,后4个,中间2个。
【数据规模】
编号 | $M$ | $N$ | $A;B$ | $X$ | $G$ |
$1$ | $5$ | $1$ | $1≤A≤B≤M$ | $1≤X[i]≤100000$ | $-1000≤G[i]≤1000$ |
$2$ | $≤10$ | ≤$3$ | |||
$3$ | $≤100$ | $≤10$ | |||
$4$ | $≤1000$ | $≤50$ | |||
$5$ | $≤10000$ | $≤200$ | $0≤G[i]≤1000$ | ||
$6$ | |||||
$7$ | |||||
$8$ | $-1000≤G[i]≤1000$ | ||||
$9$ | |||||
$10$ |