QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 512 MB 満点: 100 ハック可能 ✓

#385. Gra

統計

狂野飙车 jest ulubioną grą małego L. W odróżnieniu od innych amatorów mały L, oprócz grania, dobrze zna się również na badaniu konstrukcji gier, dlatego stosuje nietypowe strategie.

Treść zadania

Mały L planuje rozegrać $n$ wyścigów. W każdym wyścigu używa się jednej mapy, a mały L wybierze samochód, którym ukończy grę na tej mapie.

Mały L ma trzy samochody wyścigowe, oznaczone wielkimi literami A, B i C. Istnieją cztery rodzaje map, oznaczone małymi literami x, a, b i c. Samochód A nie nadaje się do mapy a, samochód B do mapy b, a samochód C do mapy c. Natomiast mapa x nadaje się dla wszystkich samochodów. Mapy odpowiednie dla wszystkich samochodów są rzadkie: będzie ich najwyżej $d$.

Mapy dla $n$ wyścigów można opisać łańcuchem małych liter. Na przykład $S=\texttt{xaabxcbc}$ oznacza, że mały L planuje 8 wyścigów. Mapy w wyścigach 1 i 5 są typu x i nadają się dla wszystkich samochodów; mapy w wyścigach 2 i 3 są typu a i nie nadają się dla samochodu A; mapy w wyścigach 4 i 7 są typu b i nie nadają się dla samochodu B; mapy w wyścigach 6 i 8 są typu c i nie nadają się dla samochodu C.

Mały L ma pewne szczególne wymagania dotyczące gry. Każde z nich można opisać czwórką $(i,h_i,j,h_j)$: jeśli w wyścigu $i$ zostanie użyty samochód typu $h_i$, to w wyścigu $j$ musi zostać użyty samochód typu $h_j$.

Czy potrafisz pomóc małemu L wybrać samochód do każdego wyścigu? Jeśli istnieje wiele rozwiązań, wypisz dowolne z nich. Jeśli rozwiązanie nie istnieje, wypisz „-1” (bez cudzysłowów).

Wejście

Dane należy odczytać z pliku game.in.

Pierwszy wiersz wejścia zawiera dwie nieujemne liczby całkowite $n,d$.

Drugi wiersz wejścia zawiera łańcuch $S$.

Znaczenie $n,d,S$ opisano w treści zadania. Łańcuch $S$ zawiera $n$ znaków, z których dokładnie $d$ to małe litery x.

Trzeci wiersz wejścia zawiera dodatnią liczbę całkowitą $m$, oznaczającą liczbę reguł używania samochodów. Każdy z kolejnych $m$ wierszy zawiera czwórkę $i,h_i,j,h_j$, gdzie $i,j$ są liczbami całkowitymi, a $h_i,h_j$ są znakami a, b lub c. Ich znaczenie opisano w treści zadania.

Wyjście

Wynik należy zapisać do pliku game.out.

Wypisz jeden wiersz.

Jeśli rozwiązanie nie istnieje, wypisz „-1” (bez cudzysłowów).

Jeśli rozwiązanie istnieje, wiersz powinien zawierać łańcuch długości $n$, złożony wyłącznie z wielkich liter A, B i C, opisujący wybór samochodów przez małego L w tych $n$ wyścigach. Jeśli istnieje wiele rozwiązań, wypisz dowolne z nich.

Przykład

Wejście 1

3 1
xcc
1
1 A 2 B

Wyjście 1

ABA

Przykład 2

Zobacz pliki game/game2.in i game/game2.ans w katalogu zawodnika.

Uwagi

Objaśnienie przykładu 1:

Mały L planuje 3 wyścigi. Mapa w pierwszym wyścigu jest typu x i nadaje się dla wszystkich samochodów, natomiast mapy w drugim i trzecim wyścigu są typu c i nie nadają się dla samochodu C.

Mały L chce, aby użycie samochodu A w pierwszym wyścigu pociągało za sobą użycie samochodu B w drugim wyścigu.

Przydzielenie samochodów A, B i A odpowiednio do tych 3 wyścigów spełnia wszystkie warunki.

Przydzielenie do kolejnych 3 wyścigów samochodów BBB lub BAA również spełnia wszystkie warunki i jest uznawane za poprawną odpowiedź. Natomiast przydziały AAB i ABC nie spełniają wszystkich warunków, więc nie są uznawane za poprawne odpowiedzi.

Podzadania

Numer testu $n$ $d$ $m$ Pozostałe właściwości
1 $\le 2$ $0$ $\le 4$ Brak
2 $\le 2$ $\le n$ $\le 4$ Brak
3 $\le 5$ $0$ $\le 10$ Brak
4 $\le 5$ $\le n$ $\le 10$ Brak
5 $\le 10$ $0$ $\le 20$ Brak
6 $\le 10$ $\le 8$ $\le 20$ Brak
7 $\le 20$ $0$ $\le 40$ $S$ zawiera tylko c
8 $\le 20$ $0$ $\le 40$ Brak
9 $\le 20$ $\le 8$ $\le 40$ $S$ zawiera tylko x lub c
10 $\le 20$ $\le 8$ $\le 40$ Brak
11 $\le 100$ $0$ $\le 200$ $S$ zawiera tylko c
12 $\le 100$ $0$ $\le 200$ Brak
13 $\le 100$ $\le 8$ $\le 200$ $S$ zawiera tylko x lub c
14 $\le 100$ $\le 8$ $\le 200$ Brak
15 $\le 5000$ $0$ $\le 10000$ Brak
16 $\le 5000$ $\le 8$ $\le 10000$ $S$ zawiera tylko x lub c
17 $\le 5000$ $\le 8$ $\le 10000$ Brak
18 $\le 50000$ $0$ $\le 100000$ Brak
19 $\le 50000$ $\le 8$ $\le 100000$ $S$ zawiera tylko x lub c
20 $\le 50000$ $\le 8$ $\le 100000$ Brak

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.