2022 RoboCom 世界机器人开发者大赛-本科组(国赛)-- 第三题 RC-u3 战利品分配

在某个战争游戏中,多个玩家组成一个大型军团,攻下若干城池,并获得战利品。

具体而言,游戏中有 N 个城市,并以 M 条长度为 1 的无向道路连接,玩家们组成的军团从 S 号城市开始进攻,目的地是 T 号城市,每个城市攻下后的战利品价值为 pi​。

为了合理地分配战利品,军团们定下了规矩:假设军团里有 K 位玩家,那么从 S 号城市开始,第 1 个攻下的城市分配给第 1 位玩家,第 2 个攻下的分配给第 2 位玩家,……,第 K 个攻下的分配给第 K 位玩家,第 K+1 个攻下的则重新开始计算,分配给第 1 位玩家,以此类推。

军团很强,路上所有的城市都可以轻松进攻下来。你作为军团的指挥,可以指定玩家的进攻路线。但玩家们都希望尽快结束游戏,因此 S 到 T 的距离必须是最短的。你需要做的是在最短距离的限制下选择对自己最好的线路,获得尽可能高的战利品价值。请输出你的答案。

输入格式:

输入第一行是四个数 N,M,K,P (1≤N,M≤105,1≤K≤104,1≤P≤K),表示城市数量(于是城市从 1 到 N 编号)、连接道路数量以及你在军团中的 K 位玩家中排第 P 位(即你战利品分配在第 P 位)。

第二行是 N 个被空格隔开的非负整数,第 i 个数对应 pi​ (0≤pi​≤104),表示编号为 i 的城市的战利品价值(i=1,⋯,N)。

然后的 M 行,每行给出两个用空格分隔的正整数 U 和 V,表示编号为 U 和 V 的城市之间有道路连接。

最后的一行是两个正整数 S,T,表示开始的城市编号与目的地的城市编

你可能感兴趣的:(开发语言,c++)