CF2038H Galactic Council

题目描述

Monocarp 正在玩一个电脑游戏,他在游戏中掌控着一个太空帝国。这个帝国由 $n$ 个政党组成。起初,每个政党的政治影响力都是 $0$,并且没有执政党。 在接下来的 $m$ 个回合中,会发生如下事件: 1. 首先,Monocarp 要选择支持哪个政党。他可以支持任何一个政党,但不能是当前的执政党。每当他支持一个政党,该政党的政治影响力就增加 $1$。假如他在第 $j$ 回合支持第 $i$ 个政党,他会因此获得 $a_{i,j}$ 分的加分; 2. 接下来,进行选举,影响力最高的政党被选为新的执政党(如果有多个这样的政党,则选编号最小的)。前任执政党会被替换,除非它继续胜选; 3. 最后,一个事件会发生。在每个回合结束时,政党 $p_j$ 必须成为执政党,否则 Monocarp 将输掉游戏。 你的任务是帮助 Monocarp 确定在每个回合中支持哪个政党,以避免因为事件而输掉游戏,并且使他的得分达到最大。初始时,Monocarp 的得分为 $0$。

输入格式

第一行包含两个整数 $n$ 和 $m$,表示政党的数量和游戏的回合数($2 \le n, m \le 50$)。 第二行包含 $m$ 个整数 $p_1, p_2, \dots, p_m$,这些数表示在第 $j$ 回合结束时必须成为执政党的政党编号($1 \le p_j \le n$)。 接下来有 $n$ 行,第 $i$ 行包含 $m$ 个整数 $a_{i,1}, a_{i,2}, \dots, a_{i,m}$,表示如果 Monocarp 在第 $j$ 回合支持第 $i$ 个政党,他会获得的得分($1 \le a_{i,j} \le 10^5$)。

输出格式

如果无论 Monocarp 怎样行动都会失败,输出 $-1$。 否则,输出 $m$ 个整数 $c_1, c_2, \dots, c_m$,每个整数表示 Monocarp 在第 $j$ 回合应该支持的政党编号($1 \le c_j \le n$)。如果有多种方案,输出任意一个即可。 **本翻译由 AI 自动生成**