Bạn được cung cấp một loạt các trọng lượng, và nhiệm vụ của bạn là xây dựng một điện thoại di động cân bằng nhỏ bằng cách sử dụng các trọng lượng đó.
Đầu vào là một danh sách các trọng số nguyên trong phạm vi từ 1 đến 9, bao gồm. Có thể có sự trùng lặp.
Đầu ra là một hình ảnh ascii của một chiếc điện thoại di động mà khi được treo sẽ cân bằng. Có lẽ tốt nhất được hiển thị bằng ví dụ:
đầu vào
3 8 9 7 5
đầu ra có thể
|
+-----+---------+
| |
+--+-+ +----+------+
| | | |
8 ++--+ 7 5
| |
9 3
Bạn phải sử dụng các ký tự ascii như được hiển thị. Các phân đoạn ngang và dọc có thể có độ dài bất kỳ. Không một phần nào của điện thoại di động có thể chạm vào (theo chiều ngang hoặc chiều dọc) một phần khác không được kết nối của điện thoại di động. Tất cả các trọng lượng phải được treo từ một đoạn dọc có chiều dài ít nhất là 1 và phải có một đoạn thẳng đứng mà toàn bộ điện thoại di động được treo.
Kích thước của một điện thoại di động là tổng số +
, -
và |
ký tự cần thiết để xây dựng nó. Kích thước thấp hơn là tốt hơn.
Bạn có thể đặt nhiều kết nối trên một phân khúc như bạn muốn. Ví dụ:
đầu vào
2 3 3 5 3 9
đầu ra có thể
|
+---+---+-----------+
| | |
+--+-+ 5 9
| | |
2 | 3
|
+++
| |
3 3
Chương trình chiến thắng là chương trình có thể tạo ra kích thước trung bình di động thấp nhất cho một bộ thử nghiệm đầu vào. Thử nghiệm thực sự là siêu bí mật để ngăn chặn mã hóa cứng, nhưng nó sẽ giống như thế này:
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 7 7
3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7
total_weight_hung_from_point * distance_of_point_from_pivot
phải giống nhau ở cả hai phía của điểm trục.