CF1970F3 Playing Quidditch (Hard)
题目描述
今天下午,你决定在春天的第一天外出散步。当你走近魁地奇球场时,听到了尖叫声。又一次,比分出现了争议:两队都坚信自己赢得了比赛!为了防止这种情况再次发生,你决定参与比赛的裁判工作。
现在,你将留在体育场观看比赛并计分。在比赛结束时,你将决定获胜者。
今天,两支队伍正在比赛:红色的 Gryffindor(R)和蓝色的 Ravenclaw(B)队。每支队伍由 $P$ 名球员组成($1 \leq P \leq 10$)。
球场是一个 $N$ 行 $M$ 列的矩形($3 \leq N, M \leq 99$,$N$ 和 $M$ 都是奇数)。所有位置均为整数,多个实体可以处于场上的同一位置。比赛开始时,场上有两队的球门(每队可拥有 1 到 5 个球门)、球员,以及恰好一个 Quaffle。在本题版本中,还可能有一个 Bludger 和一个 Golden Snitch。
一场比赛由 $T$ 个步骤组成($0 \leq T \leq 10000$)。每一步,场上的一个实体(球员或球)执行一个动作。所有实体都可以移动。球员还可以接球或投掷自己携带的 Quaffle。要接球,球员必须与球处于同一格。被携带时,Quaffle 不会执行任何动作,只会跟随球员移动。如果携带 Quaffle 的球员决定投掷它,Quaffle 就会被放在球员当前位置。如果球员与 Bludger 处于同一格(无论是球员移动后还是 Bludger 移动后),该球员被淘汰。如果球员在携带 Quaffle 时被淘汰,Quaffle 会留在包含球员和 Bludger 的格子里。保证不会在球员处于球门格子时发生淘汰。
要得分,球员必须将 Quaffle 留在对方球门。此时,球员所在队伍得 1 分,Quaffle 立即移动到场地中央(第 $(N+1)/2$ 行、第 $(M+1)/2$ 列,起始编号为 1)。场地中央没有球门。如果球员把球放进了己方球门,则对方得分。如果球员接住了 Golden Snitch,则其队伍得 10 分,比赛立即结束。
输入格式
第一行,两个整数 $N$ 和 $M$。
接下来是球场描述:$N$ 行,每行 $M$ 对字符,两字符之间用空格分隔。每对字符表示场上的一个位置,可能为:
- .. 表示空格;
- R0, ..., R9, B0, ..., B9 表示球员。第一个字符是队伍,第二个是球员编号。每对字符唯一,但不保证所有编号都出现在场上;
- RG 或 BG 表示球门。蓝队试图将球投入红球门(RG),红队试图将球投入蓝球门(BG);
- .Q 表示 Quaffle(比赛用球);
- .B 表示 Bludger;
- .S 表示 Golden Snitch。
下一行包含 $T$,表示比赛的步数。接下来 $T$ 行,每行描述一个动作。每行由若干信息组成,空格分隔。首先是执行动作的实体的两字符编号。然后是动作描述:
- U, D, L, R 表示实体在场上移动。U 表示上移,D 表示下移,L 表示左移,R 表示右移。每次只移动一格;
- C 表示球员接球(只有球员能接球)。接着有一个空格和一对字符,表示被接住的球。由于同一格可能有多个球,因此需要此信息;
- T 表示球员投掷自己携带的 Quaffle。
所有动作保证有效:球员不会离开场地,不会在不在同一格时接球,不会在未携带 Quaffle 时投掷等。
输出格式
你需要输出比赛主要事件的描述,每行一个事件。具体如下:
- 每当有队伍得分时,输出 t RED GOAL 或 t BLUE GOAL,t 为当前时间(动作序号,从 0 开始)。如果球员把球投入了己方球门,则输出得分方为对方队伍。
- 每当有球员被淘汰时,输出 t p ELIMINATED,其中 t 为当前时间,p 为被淘汰球员的编号,格式与输入一致。
- 如果 Golden Snitch 被接住,输出 t RED CATCH GOLDEN SNITCH 或 t BLUE CATCH GOLDEN SNITCH,t 为当前时间。
事件按 t 升序输出。如果同一时刻有多名球员被淘汰,按字母顺序输出:B0, ..., B9, R0, ..., R9。
比赛结束后,输出最终比分:FINAL SCORE: r b,其中 r 为红队得分,b 为蓝队得分。
说明/提示
在第一个样例中,红队球员拿到 Quaffle,移动并投掷。蓝队球员接球,前往红队球门并得分。
在第二个样例中,红队球员拿球并将球投入己方球门:蓝队得 1 分。
在第三个样例中,Bludger 移动到 R0 位置:R0 被淘汰。然后 B0 移动到 Bludger 位置:B0 也被淘汰。
在第四个样例中,红队球员接住了 Golden Snitch。其队伍得 10 分,比赛结束。
你可以在本题的简单版本中找到更多样例。
由 ChatGPT 4.1 翻译