noi2017-Day2-T1
【問題描述】
狂野飆車是小L最喜歡的游戲。與其他業余玩家不同的是,小L在玩游戲之余,還精于研究游戲的設計,因此他有著與眾不同的游戲策略。
小L計劃進行n場游戲,每場游戲使用一張地圖,小L會選擇一輛車在該地圖上完成游戲。
小L的賽車有三輛,分別用大寫字母A、B、C表示。地圖一共有四種,分別用小寫字母x、a、b、c表示。其中,賽車A不適合在地圖a上使用,賽車B不適合在地圖b上使用,賽車C不適合在地圖c上使用,而地圖x則適合所有賽車參加。適合所有賽車參加的地圖并不多見,最多只會有 d 張。
n場比賽的地圖可以用一個小寫字母組成的字符串描述。例如:S=xaabxcbc表示小L計劃進行8場游戲,其中第1場和第5場的地圖類型是x,適合所有賽車,第2 場和第3場的地圖是a,不適合賽車A,第4 場和第7 場的地圖是b,不適合賽車B,第6場和第8 場的地圖是c,不適合賽車C。
小L對游戲有一些特殊的要求,這些要求可以用四元組(i,hi,j,hj)來描述,表示若在第i場使用型號為hi的車子,則第j場游戲要使用型號為hj的車子。
你能幫小L選擇每場游戲使用的賽車嗎?如果有多種方案,輸出任意一種方案。如果無解,輸出“-1”(不含雙引號)。
(題目描述以pdf文件為準)
【輸入形式】
從文件 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
(樣例解釋見pdf文件)
【輸出樣例1】
ABA
【輸入樣例2】
見下發文件中的 game/game2.in
【輸出樣例2】
見下發文件中的 game/game2.ans
【時間限制】
1s
【空間限制】
512000KB
【上傳文件】
上傳c, cpp, pas語言源程序,文件名為game.c, game.cpp, game.pas。
Upload Your source File(s) :
Note :Your program can be written with the programing language(s) as below
C(.c): your source filename is ''game.c''
CPP(.cpp): your source filename is ''game.cpp''
PAS(.pas): your source filename is ''game.pas''