Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
COEDU039 - Oẳn tù tì |
Oẳn tù tì là một trò chơi bằng tay mang tính đối nghịch giữa hai hoặc nhiều người chơi cùng lúc khi ra một trong ba hình dạng của bàn tay. Các thể hiện hình dáng của bàn tay gồm 3 thế Kéo, Búa, Bao.
Luật chơi như sau:
Có N người chơi sẽ chơi trong Q lượt, mỗi người chơi sẽ có một số điểm ban đầu là M, nếu thắng ở lượt chơi đó thì người chơi sẽ được cộng 1 điểm, thua sẽ bị trừ 1 điểm và hòa thì không bị trừ điểm. Người chơi nào bị trừ hết điểm thì sẽ bị loại và không thể tham gia lượt chơi tiếp theo.
Giả sử ở lượt chơi thứ q trong tổng số Q lượt, số người chơi còn lại là n, kết quả lượt chơi thứ q sẽ như sau:
- Hòa khi tất cả n người chơi đều ra cùng 1 loại, hoặc cả 3 loại được người chơi đưa ra, khi hòa thì n người chơi này sẽ không ai bị trừ điểm và tiếp tục chơi ở lượt tiếp theo (nếu có).
- Khi n người chơi chỉ ra 2 loại, lúc đó sẽ có thắng thua, người thua sẽ bị trừ 1 điểm, sau khi trừ điểm, số điểm của người thua bằng 0 thì sẽ bị loại và không được tham gia ở lượt tiếp theo. Còn người thắng sẽ được cộng 1 điểm. Kết quả thắng thua dựa trên bảng sau:
- Những người chơi ra kéo sẽ thắng những người chơi ra bao (kéo > bao).
- Những người chơi ra búa sẽ thắng những người chơi ra kéo (búa > kéo).
- Những người chơi ra bao sẽ thắng những người chơi ra búa (bao > búa).
Cho thông tin về Q lượt chơi của N người chơi và số điểm ban đâu M, hãy đưa ra danh sách số điểm còn lại của N người chơi sau khi kết thúc Q lượt chơi.
[Ví dụ]
Giả sử có 6 người chơi trong 5 lượt như bảng dưới đây (ví dụ này tương ứng với test case mẫu #2).
Điểm |
8 |
8 |
8 |
8 |
8 |
8 |
Lượt chơi |
Người chơi 1 |
Người chơi 2 |
Người chơi 3 |
Người chơi 4 |
Người chơi 5 |
Người chơi 6 |
1 |
Búa |
Bao |
Kéo |
Búa |
Búa |
Búa |
2 |
Búa(8-1) |
Bao(8 + 1) |
Bao(8 + 1) |
Búa(8-1) |
Bao(8 + 1) |
Bao(8 + 1) |
3 |
Búa(7+1) |
Búa(9+1) |
Búa(9+1) |
Kéo(7-1) |
Búa(9+1) |
Búa(9+1) |
4 |
Kéo |
Kéo |
Bao |
Búa |
Kéo |
Bao |
5 |
Bao |
Kéo |
Búa |
Búa |
Búa |
Búa |
- Lượt 1: do cả ba loại đều được ra nên kết quả hòa, không ai bị trừ điểm.
- Lượt 2: có 2 loại được ra là búa và bao, búa thua bao nên tất cả những người ra búa sẽ bị trừ 1 điểm (người chơi 1 và người chơi 4).
- Lượt 3: có 2 loại được đưa ra là búa và kéo, kéo thua búa nên tất cả những người ra kéo sẽ bị trừ 1 điểm (người chơi 4).
- Lượt 4: do cả ba loại đều được ra nên kết quả hòa, không ai bị trừ điểm.
- Lượt 5: do cả ba loại đều được ra nên kết quả hòa, không ai bị trừ điểm.
Sau 5 lượt chơi, số điểm còn lại của 6 người chơi lần lượt là: 8, 10, 10, 6, 10, 10
[Input]
Dòng đầu tiên là số lượng test case T (T ≤ 50). Thông tin về mỗi test case như sau:
Mỗi test case được cho trên Q + 1 dòng, trong đó:
Dòng đầu tiên gồm 3 số nguyên dương N (2 ≤ N ≤ 10), Q (1 ≤ Q ≤ 100) và M (1 ≤ M ≤ 20) tương ứng là số người chơi N, số lượt chơi Q và số điểm ban đầu M, ba số phân biệt nhau bởi dấu cách.
Q dòng tiếp theo, mỗi dòng gồm N số, số thứ i trong dòng q mô tả loại mà người chơi thứ i đã ra trong lượt chơi thứ q, các số được phân biệt với nhay bằng một dấu cách và giá trị là một trong 3 số sau:
- 1: mô tả người chơi ra kéo
- 2: mô tả người chơi ra búa
- 3: mô tả người chơi ra bao
Lưu ý có thể người chơi thứ i đã bị loại tại lượt chơi q nhưng vẫn được mô tả trong input, tuy nhiên khi đã bị loại thì giá trị đó không được dùng để đánh giá kết quả của lượt chơi đó.
[Ouput]
Đưa ra output trên T dòng tương ứng với T test case.
Mỗi test case in ra “#tc”, với tc là số thứ tự của test case, đánh số bắt đầu từ 1, tiếp theo là một dấu cách và kết quả tương ứng của test case đó.
Kết quả in ra là danh sách số điểm còn lại của N người chơi sau Q lượt chơi tương ứng của test case đó, danh sách này cần được in ra trên dùng một dòng, hai số phân biệt với nhau bởi một dấu cách.
Example
Input:55
2 3 2
1 1
1 2
2 1
6 5 8
2 3 1 2 2 2
2 3 3 2 3 3
2 2 2 1 2 2
1 1 3 2 1 3
3 1 2 2 2 2
5 4 15
2 3 1 3 3
1 2 1 3 2
3 3 2 3 3
2 2 2 3 3
5 5 1
2 2 1 2 1
1 1 2 1 1
3 2 1 3 1
3 1 3 3 2
2 3 1 3 3
8 15 10
1 2 2 1 2 3 3 1
3 2 2 3 3 2 2 1
3 1 1 2 3 3 2 3
1 2 1 1 3 3 3 2
3 3 1 3 2 1 3 2
3 2 1 1 2 2 3 3
3 2 3 1 1 2 1 1
2 1 3 3 3 2 1 2
1 3 2 3 2 1 2 1
2 3 3 3 1 2 3 2
3 2 1 3 1 3 3 3
1 2 1 3 3 3 3 2
1 3 1 2 2 1 1 2
2 2 1 2 3 3 3 3
2 1 1 2 1 2 1 2 Output: #1 2 2 #2 8 10 10 6 10 10 #3 15 15 13 17 17 #4 1 3 0 3 0 #5 11 9 9 11 9 11 9 11
Được gửi lên bởi: | Phòng đào tạo Coedu |
Ngày: | 2022-12-13 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C C++ 4.3.2 CPP JAVA |