QOJ.ac

QOJ

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

#385. Trò chơi

統計

狂野飙车 là trò chơi yêu thích nhất của Tiểu L. Khác với những người chơi nghiệp dư khác, ngoài việc chơi, Tiểu L còn giỏi nghiên cứu thiết kế trò chơi, vì thế cậu có chiến thuật chơi khác biệt.

Mô tả bài toán

Tiểu L dự định chơi $n$ ván, mỗi ván sử dụng một bản đồ. Tiểu L sẽ chọn một chiếc xe để hoàn thành ván chơi trên bản đồ đó.

Tiểu L có ba xe đua, lần lượt được ký hiệu bằng các chữ cái in hoa A, B, C. Có bốn loại bản đồ, lần lượt được ký hiệu bằng các chữ cái thường x, a, b, c. Xe A không thích hợp với bản đồ a, xe B không thích hợp với bản đồ b, xe C không thích hợp với bản đồ c, còn bản đồ x thích hợp với mọi xe. Bản đồ thích hợp với mọi xe khá hiếm, nhiều nhất chỉ có $d$ bản đồ.

Các bản đồ của $n$ ván chơi có thể được mô tả bằng một xâu chữ cái thường. Ví dụ, $S=\texttt{xaabxcbc}$ có nghĩa là Tiểu L dự định chơi 8 ván; bản đồ ở ván 1 và 5 có loại x, thích hợp với mọi xe; bản đồ ở ván 2 và 3 có loại a, không thích hợp với xe A; bản đồ ở ván 4 và 7 có loại b, không thích hợp với xe B; bản đồ ở ván 6 và 8 có loại c, không thích hợp với xe C.

Tiểu L có một số yêu cầu đặc biệt đối với trò chơi. Mỗi yêu cầu được mô tả bằng một bộ bốn $(i,h_i,j,h_j)$, có nghĩa là nếu dùng xe loại $h_i$ ở ván thứ $i$ thì phải dùng xe loại $h_j$ ở ván thứ $j$.

Bạn có thể giúp Tiểu L chọn xe cho mỗi ván không? Nếu có nhiều phương án, hãy in ra một phương án bất kỳ. Nếu không có lời giải, in ra -1 (không có dấu ngoặc kép).

Dữ liệu vào

Đọc dữ liệu từ tệp game.in.

Dòng đầu tiên chứa hai số nguyên không âm $n,d$.

Dòng thứ hai chứa một xâu $S$.

Ý nghĩa của $n,d,S$ được nêu trong phần mô tả bài toán; $S$ gồm $n$ ký tự, trong đó có đúng $d$ chữ cái thường x.

Dòng thứ ba chứa một số nguyên dương $m$, biểu thị có $m$ quy tắc sử dụng xe. Mỗi dòng trong $m$ dòng tiếp theo chứa một bộ bốn $i,h_i,j,h_j$, trong đó $i,j$ là số nguyên, $h_i,h_j$ là ký tự a, b hoặc c; ý nghĩa được nêu trong phần mô tả bài toán.

Dữ liệu ra

Ghi kết quả vào tệp game.out.

In ra một dòng.

Nếu không có lời giải, in ra -1 (không có dấu ngoặc kép).

Nếu có lời giải, dòng này chứa một xâu độ dài $n$ chỉ gồm các chữ cái in hoa A, B, C, biểu thị cách Tiểu L bố trí xe cho $n$ ván chơi. Nếu có nhiều lời giải, in ra một lời giải bất kỳ.

Ví dụ

Dữ liệu vào 1

3 1
xcc
1
1 A 2 B

Dữ liệu ra 1

ABA

Ví dụ 2

Xem các tệp game/game2.in và game/game2.ans trong thư mục của thí sinh.

Ghi chú

Tiểu L dự định chơi 3 ván. Bản đồ ở ván 1 có loại x, thích hợp với mọi xe; bản đồ ở ván 2 và 3 có loại c, không thích hợp với xe C.

Tiểu L mong muốn: nếu dùng xe A ở ván 1 thì dùng xe B ở ván 2.

Do đó, bố trí lần lượt các xe A, B, A cho 3 ván sẽ thỏa mãn mọi điều kiện.

Bố trí lần lượt BBB hoặc BAA cho 3 ván cũng thỏa mãn mọi điều kiện và được coi là đáp án đúng. Tuy nhiên, bố trí lần lượt AAB hoặc ABC không thỏa mãn mọi điều kiện nên không được coi là đáp án đúng.

Nhiệm vụ con

Số hiệu bộ kiểm thử $n$ $d$ $m$ Tính chất khác
1 $\le 2$ $0$ $\le 4$ Không có
2 $\le 2$ $\le n$ $\le 4$ Không có
3 $\le 5$ $0$ $\le 10$ Không có
4 $\le 5$ $\le n$ $\le 10$ Không có
5 $\le 10$ $0$ $\le 20$ Không có
6 $\le 10$ $\le 8$ $\le 20$ Không có
7 $\le 20$ $0$ $\le 40$ $S$ chỉ chứa c
8 $\le 20$ $0$ $\le 40$ Không có
9 $\le 20$ $\le 8$ $\le 40$ $S$ chỉ chứa x hoặc c
10 $\le 20$ $\le 8$ $\le 40$ Không có
11 $\le 100$ $0$ $\le 200$ $S$ chỉ chứa c
12 $\le 100$ $0$ $\le 200$ Không có
13 $\le 100$ $\le 8$ $\le 200$ $S$ chỉ chứa x hoặc c
14 $\le 100$ $\le 8$ $\le 200$ Không có
15 $\le 5000$ $0$ $\le 10000$ Không có
16 $\le 5000$ $\le 8$ $\le 10000$ $S$ chỉ chứa x hoặc c
17 $\le 5000$ $\le 8$ $\le 10000$ Không có
18 $\le 50000$ $0$ $\le 100000$ Không có
19 $\le 50000$ $\le 8$ $\le 100000$ $S$ chỉ chứa x hoặc c
20 $\le 50000$ $\le 8$ $\le 100000$ Không có

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.