Google Code Jam 2018 - Senate Evacuation

Xem PDF




Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1200 Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Senate Evacuation

Một đám cháy nhỏ bùng lên trong phòng thượng viện và mọi người phải sơ tán!

Mỗi thượng nghị sĩ trong phòng thuộc một trong \(N\) đảng chính trị, được đặt tên theo \(N\) chữ cái in hoa đầu tiên của bảng chữ cái tiếng Anh. Cửa thoát hiểm đủ rộng cho nhiều nhất hai người, nên mỗi bước bạn có thể đưa một hoặc hai thượng nghị sĩ ra ngoài.

Quy tắc thượng viện cho phép những người còn trong phòng bỏ phiếu cho bất kỳ dự luật nào vào bất kỳ lúc nào, kể cả giữa cuộc sơ tán. Vì vậy, sau mọi bước, không đảng nào được có đa số tuyệt đối: số người của một đảng không bao giờ được lớn hơn một nửa tổng số người còn lại.

Hãy xây dựng một kế hoạch sơ tán; thượng viện đang trông cậy vào bạn!

Dữ liệu vào

Dòng đầu chứa số test \(T\). Mỗi test gồm hai dòng. Dòng đầu chứa \(N\), số đảng. Dòng thứ hai chứa \(N\) số nguyên \(P_1,P_2,\ldots,P_N\), trong đó \(P_i\) là số thượng nghị sĩ của đảng mang chữ cái thứ \(i\).

Dữ liệu ra

Với mỗi test, in Case #x: y, trong đó x là số thứ tự test và y là kế hoạch sơ tán. Kế hoạch là danh sách chỉ dẫn cách nhau bởi dấu cách theo đúng thứ tự thực hiện; mỗi chỉ dẫn gồm một hoặc hai chữ cái, biểu diễn đảng của những người rời phòng ở bước đó.

Đề bảo đảm có ít nhất một kế hoạch hợp lệ. Nếu có nhiều kế hoạch, có thể in bất kỳ kế hoạch nào.

Ràng buộc

  • \(1\le T\le50\).
  • Trước khi sơ tán, không đảng nào có đa số tuyệt đối.
  • \(1\le P_i\le1000\) với mọi \(i\).

Phân nhóm

  • Small Dataset (Test Set 1, hiển thị): \(2\le N\le3\)\(\sum_iP_i\le9\).
  • Large Dataset (Test Set 2, ẩn): \(2\le N\le26\)\(\sum_iP_i\le1000\).

Điểm các phân nhóm

Mỗi Test Set tương ứng với một subtask trên LQDOJ. Bảng dưới đây giữ nguyên điểm chính thức của Google Code Jam và quy đổi tỷ lệ trên tổng điểm của bài.

Phân nhóm Điểm Google Code Jam Tỷ lệ điểm của bài
Test Set 1 5/15 33,33%
Test Set 2 10/15 66,67%

Ví dụ

Ví dụ 1

Input
4
2
2 2
3
3 2 2
3
1 1 2
3
2 3 1
Output
Case #1: AB BA
Case #2: AA BC C BA
Case #3: C C AB
Case #4: BA BB CA
Note

Đầu ra mẫu chỉ là một phương án. Test 2 bắt đầu 3A,2B,2C; không thể sơ tán BC trước vì A sẽ chiếm 3/5. Ở test 3, CC ABC C AB đều hợp lệ.

Nguồn

Google Code Jam 2018, Vòng luyện tập, bài Senate Evacuation.

Nguồn chính thức trên Google Coding Competitions Archive, phát hành theo giấy phép Apache-2.0.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: