#P7685. [CEOI2005] Mobile Service
[CEOI2005] Mobile Service
题目描述
一家公司为其位于不同城镇的合作伙伴提供服务。公司现有流动服务人员 名。如果服务请求发生在某个位置,服务人员必须从他当前的位置移动到请求的位置(如果没有员工在那里)以满足请求。任何时候只有一名员工可以移动。他们只能应要求移动,并且不允许多名员工在同一位置。将员工从位置 移动到位置 会产生一定的成本 。成本计算不一定是对等的,但不动代价为 ,即 。公司必须以严格按照先请求先得服务的原则满足收到的要求。
请您编写一个程序,该程序决定服务人员中的哪位员工要为每个请求移动,以便为给定的请求列表提供服务的总成本尽可能小。
输入格式
第一行包含两个整数 和 。 是表示位置的数, 是请求数。位置由从 到 的整数表示。接下来的 行中的每一行都包含 个非负整数。第 行第 个数字是成本 。最后一行包含 个整数,为请求列表。请求由发生请求的位置的标识符标识。起初,三名服务人员分别位于位置 和 ,并以此为三名服务人员进行标识。
输出格式
第一行包含一个整数 ,它是为请求的列表提供服务的最小总成本。第二行正好包含 个整数。第 个编号是将为第 个请求提供服务的服务人员的标识符( 或 )。
5 9
0 1 1 1 1
1 0 2 3 2
1 1 0 4 1
2 1 5 0 1
4 2 3 4 0
4 2 4 1 5 4 3 2 1
5
1 2 1 2 2 1 3 1 3
提示
数据规模与约定
对于 的数据,,,。
题目说明
来源于 CENTRAL-EUROPEAN OLYMPIAD IN INFORMATICS 2005 的 Mobile Service。
由
/user/234011