QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#5268. 计算机网络

Statistics

Cupa 正在使用 $n$ 台计算机和一个集线器构建一个连通网络。

计算机编号为 $1$ 到 $n$。每台计算机 $i$ 都有一个输出线,可以在 $d_i$ 毫秒内将一位数据传输到另一端。

集线器有 $k$ 个端口,计算机的导线可以连接到这些端口中,每台计算机也有一个端口。

Cupa 要求每台计算机的导线都必须连接到某个端口——要么是集线器上的端口,要么是另一台计算机上的端口。此外,必须保证每台计算机都能直接或通过其他计算机将数据发送到集线器。

每台计算机 $i$ 的网络延迟 $t_i$ 定义为从计算机 $i$ 发送一位数据到集线器所需的时间。我们假设中间计算机将接收到的数据转发到其自身的输出线是不需要时间的。

网络构建完成后,Cupa 将计算每台计算机 $i$ 的网络延迟 $t_i$。他希望所有计算机的总网络延迟,即 $t_1 + t_2 + \dots + t_n$ 尽可能小。

请帮助 Cupa 构建一个网络,使得总网络延迟最小。

输入格式

第一行包含两个整数 $n$ 和 $k$ —— 计算机的数量和集线器中端口的数量 ($1 \le k \le n \le 100$)。

第二行包含 $n$ 个整数 $d_1, d_2, \dots, d_n$ —— 每台计算机导线的数据传输时间列表 ($1 \le d_i \le 100$)。

输出格式

输出一个整数 —— 最小可能的总网络延迟。

样例

样例输入 1

3 2
20 30 10

样例输出 1

70

样例输入 2

5 1
10 10 10 10 10

样例输出 2

150

样例输入 3

5 2
10 10 10 10 10

样例输出 3

90

样例输入 4

6 3
5 6 2 3 1 4

样例输出 4

27

说明

在第一个样例测试中,Cupa 应将计算机 2 和 3 连接到集线器,并将计算机 1 连接到计算机 3。在这种情况下,$t_1 = 20 + 10 = 30$,$t_2 = 30$,$t_3 = 10$。答案为 $t_1 + t_2 + t_3 = 70$。

在第二个样例测试中,计算机应以任意顺序连接成一条通向集线器的链。总网络延迟为 $10 + 20 + 30 + 40 + 50 = 150$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.