QOJ.ac

QOJ

Süre Sınırı: 1 s Bellek Sınırı: 512 MB Toplam puan: 100 Hack'lenebilir ✓

#385. 遊戲

İstatistikler

狂野飙车係小 L 最鍾意嘅遊戲。同其他業餘玩家唔同,小 L 除咗玩遊戲,仲好擅長研究遊戲設計,所以佢有一套與眾不同嘅遊戲策略。

題目描述

小 L 計劃玩 $n$ 場遊戲,每場遊戲用一張地圖,而小 L 會揀一架車喺嗰張地圖上完成遊戲。

小 L 有三架賽車,分別用大寫字母 A、B、C 表示。地圖總共有四種,分別用小寫字母 x、a、b、c 表示。其中,賽車 A 唔適合喺地圖 a 使用,賽車 B 唔適合喺地圖 b 使用,賽車 C 唔適合喺地圖 c 使用,而地圖 x 就適合所有賽車參加。適合所有賽車參加嘅地圖唔多,最多只會有 $d$ 張。

呢 $n$ 場遊戲嘅地圖可以用一個由小寫字母組成嘅字串描述。例如 $S=\texttt{xaabxcbc}$ 表示小 L 計劃玩 8 場遊戲,其中第 1 場同第 5 場嘅地圖類型係 x,適合所有賽車;第 2 場同第 3 場嘅地圖係 a,唔適合賽車 A;第 4 場同第 7 場嘅地圖係 b,唔適合賽車 B;第 6 場同第 8 場嘅地圖係 c,唔適合賽車 C。

小 L 對遊戲有啲特別要求,可以用四元組 $(i,h_i,j,h_j)$ 描述,表示如果第 $i$ 場用型號為 $h_i$ 嘅車,第 $j$ 場遊戲就要用型號為 $h_j$ 嘅車。

你可唔可以幫小 L 揀每場遊戲用邊架賽車?如果有多種方案,輸出其中任何一種。如果無解,輸出 -1(唔包括雙引號)。

輸入格式

由檔案 game.in 讀入數據。

輸入第一行包含兩個非負整數 $n,d$。

輸入第二行係一個字串 $S$。

$n,d,S$ 嘅意思見題目描述,其中 $S$ 包含 $n$ 個字元,而且恰好有 $d$ 個係小寫字母 x。

輸入第三行係一個正整數 $m$,表示有 $m$ 條用車規則。之後 $m$ 行,每行包含一個四元組 $i,h_i,j,h_j$,其中 $i,j$ 係整數,$h_i,h_j$ 係字元 a、b 或 c,意思見題目描述。

輸出格式

輸出到檔案 game.out。

輸出一行。

如果無解,輸出 -1(唔包括雙引號)。

如果有解,就包含一個長度為 $n$、只由大寫字母 A、B、C 組成嘅字串,表示小 L 喺呢 $n$ 場遊戲入面點樣安排賽車。如果有多組解,輸出其中任何一組就得。

樣例

輸入格式 1

3 1
xcc
1
1 A 2 B

輸出格式 1

ABA

樣例 2

見選手目錄入面嘅 game/game2.in 同 game/game2.ans。

說明 1

小 L 計劃玩 3 場遊戲,其中第 1 場嘅地圖類型係 x,適合所有賽車;第 2 場同第 3 場嘅地圖係 c,唔適合賽車 C。

小 L 希望:如果第 1 場遊戲用賽車 A,第 2 場遊戲就要用賽車 B。

咁樣,呢 3 場遊戲分別安排賽車 A、B、A,就可以滿足所有條件。

如果順序為 3 場遊戲安排賽車為 BBB 或 BAA,亦可以滿足所有條件,亦會視為正確答案。不過,如果順序安排賽車為 AAB 或 ABC,因為唔能夠滿足所有條件,所以唔會視為正確答案。

子任務

測試點編號 $n$ $d$ $m$ 其他性質
1 $\leq 2$ $0$ $\leq 4$ 無
2 $\leq n$
3 $\leq 5$ $0$ $\leq 10$
4 $\leq n$
5 $\leq 10$ $0$ $\leq 20$
6 $\leq 8$
7 $\leq 20$ $0$ $\leq 40$ $S$ 只包含 c
8 無
9 $\leq 8$ $S$ 只包含 x 或 c
10 無
11 $\leq 100$ $0$ $\leq 200$ $S$ 只包含 c
12 無
13 $\leq 8$ $S$ 只包含 x 或 c
14 無
15 $\leq 5000$ $0$ $\leq 10000$
16 $\leq 8$ $S$ 只包含 x 或 c
17 無
18 $\leq 50000$ $0$ $\leq 100000$
19 $\leq 8$ $S$ 只包含 x 或 c
20 無

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.