Bạn có trách nhiệm xây dựng một đường cao tốc mới. Tuy nhiên, nó dẫn qua các vùng đất miền núi và do đó cần rất nhiều cây cầu và đường hầm. Đường cao tốc nên ở một cấp độ duy nhất.
Đầu vào
Bạn được cung cấp một mô tả ASCII thô về cách các ngọn núi trông như thế nào trên đầu vào tiêu chuẩn, chẳng hạn như sau:
/\
/ \
/\ / \
/\ / \/ \
/ \ / \ /\
/ \/ \ / \
_ / \ /\ / \
\ / \ / \ / \ /\
\ / \ / \/ \/ \
\ / \ /
\/ \/
Các _
trong dấu cột đầu tiên khi bắt đầu và mức độ đường. Dãy núi tiếp giáp nhau và nếu đoạn cuối cùng sẽ là một cây cầu, nó có số lượng ký tự chẵn.
Bạn có thể cho rằng một dòng đầu vào không bao giờ dài hơn 100 ký tự và không có quá 15 dòng. Mỗi dòng có cùng độ dài có thể được đệm không gian ở cuối. Con đường không bao giờ bắt đầu trong một ngọn núi hoặc như một cây cầu. Điều đầu tiên sau lát đường trong đầu vào là độ dốc xuống hoặc lên.
Đầu ra
Đầu ra là cùng một dãy núi, ngoại trừ việc bây giờ có một con đường mà trước đây chỉ là khởi đầu của nó. Đầu ra được đưa ra trên đầu ra tiêu chuẩn.
Đối với điều này có rất nhiều quy tắc:
Đường phải bắt đầu tại địa điểm được chỉ định trong đầu vào và giữ nguyên mức trong suốt. Để làm cho nó dễ dàng hơn, chúng tôi đã chuẩn bị một số lát đường có mặt trước như sau
_
:_______ \ / \/\/
Con đường phải kéo dài đến cuối dãy núi (tức là chiều dài của các đường đầu vào cho biết con đường đi được bao xa).
Đường hầm phải được khoan bất cứ khi nào một ngọn núi là nơi đường cần đi. Các đường hầm đi thẳng qua núi và để lại các lỗ ở đầu và cuối (nghĩa là một đường hầm thay thế độ dốc của núi bằng dấu ngoặc đóng ở đầu và dấu ngoặc mở ở cuối).
Các đường hầm rời đi, tốt, một đường hầm trong núi thường có trần. May mắn lát gạch đường của chúng tôi may mắn có thể được sử dụng để gia cố trần để đường hầm không bị sập (đường phía trên đường hầm phải sử dụng
_
để gia cố đường hầm):/\ / \ /____\ ___)______(__ \/ \/
Đường hầm không cần phải gia cố khi ngọn núi không đủ cao so với nó. Nghe có vẻ lạ đối với tôi nhưng tôi đã được bảo rằng gạch lát đường có đủ mạnh để giữ ngay cả khi cách nhau trong trường hợp đó (không có trần hầm nào được vẽ khi có độ dốc ngay phía trên đường hầm):
/\ /\/__\ ___)______(__ \/ \/
Cầu là cần thiết bất cứ khi nào con đường cần phải vượt qua một vực thẳm. Đối với những cây cầu ngắn, gạch lát nền có đủ mạnh nhưng vẫn cần một chút hỗ trợ ở đầu và cuối cầu (dốc xuống đầu tiên dưới cầu và dốc lên cuối cùng được thay thế
Y
để có một chùm hỗ trợ cho cầu ):_____ Y Y \/
Cầu dài hơn cần hỗ trợ thêm. Một cây cầu dài là một cây cầu có hơn sáu ô đường không được hỗ trợ liên tiếp. Những cây cầu dài cần một cây cột ở trung tâm của họ. Trụ cột dễ dàng được xây dựng với dầm trụ dựng sẵn của chúng tôi trông như thế này :
|
. Mỗi trụ cột cần hai trong số chúng và chúng kéo dài xuống tận cùng của vực thẳm:_____________________________ Y || Y \ /\ || /\ /\/ \ /\ / \||/ \ /\/ \/ \/ \/ \/
Vì đầu vào chỉ đại diện cho một phần của toàn bộ dãy núi, đường cao tốc cần được xây dựng xuyên qua, nên nó có thể kết thúc đột ngột ở giữa một cây cầu hoặc đường hầm. Quy tắc cầu dài vẫn áp dụng cho phân đoạn cuối cùng và bạn có thể giả sử rằng phần đầu tiên ngoài đầu vào đã cho hỗ trợ lại cầu.
Theo các quy tắc trên, chúng tôi nhận được những điều sau đây cho đầu vào của chúng tôi:
/\
/ \
/\ / \
/\ / \/ \
/ \ / \ /\
/____\/______________\ /__\
_________)______________________(________)(____)____(______
Y Y Y Y Y Y Y YY
\ / \ / \/ \/ \
\ / \ /
\/ \/
Mã ngắn nhất theo số ký tự thắng. Trailing khoảng trắng trong các dòng được bỏ qua để xác nhận.
Mẫu đầu vào 1
_
\ /\
\ / \
\ / \
\ /\ / \ /\ /
\ /\ / \ / \ /\ /\/ \ /
\ / \ / \/ \ / \/ \/\ /
\/ \ / \ / \/
\ / \/
\/
Sản lượng mẫu 1
____________________________________________________________
Y || YY ||
\ || / \ ||
\ || / \ ||
\ || /\ / \ || /\ /
\ /\ || / \ / \ /\ |/\/ \ /
\ / \ || / \/ \ / \/ \/\ /
\/ \ || / \ / \/
\||/ \/
\/
Mẫu đầu vào 2
/\ /\
/ \/ \ /
/\ / \ /\ /
/\ / \ / \/ \ /
/ \ / \/\ / \ /\ /
/ \/ \ / \ / \ /
_/ \ / \/ \/
\ /
\ /\/
\ /\ /
\/ \ /
\ /
\/
Sản lượng mẫu 2
/\ /\
/ \/ \ /
/\ / \ /\ /
/\ / \ / \/ \ /
/ \ / \/\ / \ /\ /
/____\/________\ /__________________\ /__\ /____
_)________________(__________________)____________________()____()_____
Y || Y
\ || /\/
\ /\ || /
\/ \|| /
\| /
\/
chú thích
Không gian lưu trữ trong đầu ra được bỏ qua để so sánh với các giải pháp tham chiếu.
Điều kiện chiến thắng
Mã ngắn nhất sẽ thắng, như thông lệ trong golf. Trong trường hợp hòa, giải pháp trước đó thắng.
Các trường hợp thử nghiệm
Có hai tập lệnh kiểm tra, chứa các trường hợp kiểm thử giống hệt nhau:
Yêu cầu trong cả hai trường hợp : <test script> <my program> [arguments]
, ví dụ ./test ruby bridges.rb
hoặc ./test.ps1 ./bridges.exe
.
Một lưu ý khác
Nhiệm vụ này là một phần của cuộc thi golf được tổ chức tại trường đại học của tôi trong năm 2011-W24. Điểm số và ngôn ngữ của các thí sinh của chúng tôi như sau:
- 304 - Perl
- 343 - C
- 375 - C
- 648 - Con trăn
Giải pháp riêng của chúng tôi (nhờ Ventero) là
- 262 - Ruby