Đưa ra một chuỗi trong đó dòng đầu tiên chứa khoảng trắng và một khoảng thời gian ( .
, "quả bóng"), theo sau là dòng chứa khoảng trắng, dấu gạch chéo ( /
) và dấu gạch chéo ngược ( \
), xác định cột nào bóng sẽ hạ cánh sau khi rơi từ vị trí bắt đầu . Mỗi /
lần di chuyển nó sang bên trái 1 cột và mỗi lần \
di chuyển nó sang bên phải 1 cột.
Đầu vào mẫu
.
/ \ \
/ /
\ \/ \
\ /\
\ /\ \
\ /
Sản lượng mẫu
Quả bóng bắt đầu trong cột 5, chạm /
vào dòng 3, sau đó ba \
bóng trên dòng 5 đến 7 cho vị trí cuối cùng là:
7
Lưu ý rằng các cột được lập chỉ mục 1, chủ yếu là để thống nhất với các quy ước soạn thảo văn bản.
Trường hợp cạnh
Nếu quả bóng chạm /
vào cột đầu tiên, nó sẽ bị kẹt vĩnh viễn trong cột không tồn tại 0. Chương trình của bạn sẽ xử lý chính xác điều này bằng cách in 0
.
Nếu quả bóng chạm vào một trong hai phía của một \/
mẫu, kết quả là không xác định. Chương trình của bạn được phép chấm dứt không có đầu ra, lặp vô hạn hoặc in thông báo lỗi (giải pháp của tôi in -1
), nhưng nó không được in bất cứ điều gì có thể được coi là đầu ra hợp lệ.
Nếu quả bóng chạm vào dấu gạch chéo trái trong một \\
mẫu, nó sẽ kết thúc trực tiếp bên dưới dấu gạch chéo phải, chứ không phải bên phải của nó. Giải pháp ban đầu tôi hình dung là dễ mắc phải sai lầm này, vì vậy đừng đi vào con đường đó!
Có thể có hoặc không có khoảng trắng sau .
hoặc cuối cùng /
hoặc \
trên mỗi dòng. Chương trình của bạn không nên dựa vào phần đệm như vậy có sẵn. Trên một lưu ý tương tự, có thể có hoặc không có bất kỳ dòng nào sau dòng đầu tiên.
Bạn có thể giả định rằng dòng đầu tiên sẽ có không hoặc nhiều khoảng trắng và chính xác là một khoảng trắng .
. Các dòng tiếp theo, nếu có, sẽ có 0 hoặc nhiều khoảng trắng và 0 hoặc nhiều dấu gạch chéo.
Chi tiết thực hiện
Chương trình của bạn có thể đọc từ một tệp (được chỉ định làm đối số dòng lệnh) hoặc đọc từ đầu vào tiêu chuẩn, một cách thuận tiện.
Chương trình của bạn phải xuất một số duy nhất thành đầu ra tiêu chuẩn. (Có, một dòng mới kéo dài là tốt. Có, số có thể có nhiều hơn một chữ số.)
Các trường hợp thử nghiệm
Đầu vào:
.
Đầu ra:
1
Lưu ý rằng đầu vào ở đây chính xác là một byte. Đây là trường hợp nhỏ nhất bạn sẽ có thể xử lý.
Đầu vào:
. \ \ \ \
Đầu ra:
6
Lưu ý rằng không có khoảng trắng sau các dấu gạch chéo này.
Đầu vào:
. / /\\ / \ //\ \/// // \\/ \/\ /\/
Đầu ra:
0
Đầu vào:
. / / / \\\ /\\ / \
Đầu ra:
1
Đầu vào:
. \ / / \
Đầu ra:
4
Đầu vào:
. \ \/\/\/
Đầu ra:
(anything but a nonnegative number)
Đóng nhận xét
Câu hỏi này tương tự như Mô phỏng một máy tính loại bi-a (dựa trên trọng lực) , nhưng đơn giản hơn đáng kể, vì vậy hy vọng nó sẽ thu được nhiều sự quan tâm hơn.
Tôi có một giải pháp 169 ký tự trong Python. Dù vậy, tôi chắc chắn rằng những người chơi golf tài năng ở đây có thể xé nát kỷ lục đó thành từng mảnh. : ^)
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất trong các ký tự sẽ được chấp nhận vào cuối tháng!