AtCoder Regular Contest 043
翻译中…
Problem Statement
翻译中…
高橋国には $N$ 個の空き家がある。空き家は $1$ から $N$ の整数で番号付けされており、順に東西に一直線に $1$ キロメートル間隔で並んでいる。 つまり $i$ 番目の空き家は ある基準点から真東に $i$ キロメートル進んだところにある。
翻译中…
この国に $M$ 世帯の家族が引っ越してきた。 $i$ 番目の家族は $P_i$ 人家族である。 この $M$ 世帯の家族に $1$ 軒ずつ空き家を振り分けていく。このとき複数の家族に同じ家を振り分けてはならない。
翻译中…
あなたの目標は「住民の距離」を最大化するように空き家を振り分けることである。 「住民の距離」とは引っ越してきた人々の中の全ての $2$ 人組について、その住んでいる家の距離の総和を取った値である。
翻译中…
最適な振り分け方をしたときの「住民の距離」の最大値を求めよ。
翻译中…
Input
翻译中…
入力は以下の形式で標準入力から与えられる
翻译中…
N M
P_1
P_2
:
P_M
翻译中…
$1$行目には高橋国にある空き家の個数を表す整数$N(2 ≦ N ≦ 10^6)$と 高橋国に引っ越してくる家族の世帯数$M(2 ≦ M ≦ min(N, 1,000))$が空白区切りで与えられる。$2$行目からの$M$行のうち$i$行目には$i$番目の家族を構成する人数$P_i(1 ≦ P_i ≦ 100)$が与えられる。
翻译中…
部分点
翻译中…
この問題には部分点が設定されている。
翻译中…
$2 ≦ N ≦ 10$を満たすデータセットに正解した場合は$10$点が与えられる。$2 ≦ N ≦ 10^6$を満たすデータセットに正解した場合はさらに$90$点が与えられる。合計で$100$点となる。
翻译中…
Output
翻译中…
「住民の距離」の最大値を $1$ 行に出力せよ。 出力の末尾に改行を入れること。
翻译中…
样例
Input #1
4 3
1
1
2
Output #1
11
$1$ つめの家族の構成をAさん。$2$ つめの家族の構成をBさん。$3$ つめの家族の構成をCさん、Dさんとする。 $1$ つめの家族を $1$ 番目の空き家、 $2$ つめの家族を $2$ 番目の空き家、$3$ つめの家族を $4$ 番目の空き家に振り分けると、各二人組の距離は以下のようになる。
- AさんとBさんの距離: $1$
- AさんとCさんの距離: $3$
- AさんとDさんの距離: $3$
- BさんとCさんの距離: $2$
- BさんとDさんの距離: $2$
- CさんとDさんの距離: $0$
よって合計は $11$ となる。これが「住民の距離」の最大値である。
Input #2
10 10
3
1
4
1
5
9
2
6
5
3
Output #2
9852
Input #3
20 10
2
7
1
8
2
8
1
8
2
8
Output #3
题目信息
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。