Giới thiệu
Sisyphus đã gặp một số rắc rối trong công việc gần đây. Có vẻ như anh ta không bao giờ làm được gì, và anh ta rất thích tìm giải pháp cho vấn đề này.
Việc làm hiện tại của anh ta đòi hỏi phải lăn một tảng đá lên một ngọn đồi. Anh ấy thường làm tốt công việc của mình, nhưng mỗi lần anh ấy ở gần đỉnh đồi thì lại lăn xuống.
Anh ta đang thực sự thất vọng với công việc của mình và muốn giải quyết vấn đề một cách khoa học bằng cách có một máy tính mô phỏng tảng đá lăn xuống đồi.
Điều đó xảy ra khi Sisyphus không giỏi lập trình, vì vậy có lẽ bạn có thể giúp anh ta?
Các thách thức
Sau phần giới thiệu ngớ ngẩn này, chúng ta hãy đến với doanh nghiệp. Chương trình của bạn sẽ nhận được một minh họa về ngọn đồi và tảng đá trông giống như thế này:
#o
##
###
######
########
Nơi #đại diện cho một phần của ngọn đồi vào đại diện cho đá.
Bây giờ bạn phải thực hiện một chương trình di chuyển lớp đá 1 xuống. Ví dụ: đầu ra của ở trên phải là:
#
##o
###
######
########
Nếu có một khu vực theo chiều ngang, ngọn đồi chỉ cuộn theo chiều ngang, vì vậy ...
o
########
... điều này sẽ làm cho đá lăn sang một bên.
o
########
Nếu có một khu vực thẳng đứng, tảng đá rơi xuống một bước, vì vậy ...
#o
#
#
#####
... sẽ mang lại ...
#
#o
#
#####
Bạn cũng sẽ nhận được chiều rộng và chiều cao của hình ảnh tương ứng trong một dòng phía trên hình ảnh. Vì vậy, hoàn thành, đầu vào mẫu của chúng tôi sẽ trông như thế này:
10 5
#o
##
###
######
#########
(Lưu ý rằng khoảng trắng ở đây là khoảng trắng. Chọn văn bản và xem ý tôi là gì.)
Một số chi tiết
- Khi rock đã ở dòng cuối cùng khi chạy chương trình, bạn có thể chọn chấm dứt chương trình hoặc xuất đầu vào không thay đổi
- Ngọn đồi chỉ đi xuống
Chương trình của bạn nên định dạng đầu ra chính xác giống như đầu vào (bao gồm cả kích thước), vì vậy nếu bạn đặt đầu ra của chương trình cho chính nó, nó sẽ tính bước tiếp theo.
Bạn có thể giả sử luôn có một cách ở phía dưới, vì vậy, đầu vào nơi đường dẫn bị "chặn" có thể gây ra hành vi không xác định
Bạn có thể cho rằng luôn có một khoảng trống ở dòng cuối cùng. Đá nên "nghỉ ngơi" ở đó, vì vậy sau khi gọi chương trình một vài lần, luôn luôn đưa đầu ra của nó vào chính nó, bạn nên kết thúc với tảng đá ở dòng cuối cùng, đặt nơi không gian trước đó.
Bạn có thể chấp nhận đầu vào dưới bất kỳ hình thức nào bạn thích (stdin, file, ...). Bạn phải đăng chương trình WHOLE (vì vậy tất cả các biến được khởi tạo trước được tính là mã).
Các dòng được kết thúc với
\n.Bạn có thể lấy một số ví dụ đầu vào ở đây (đảm bảo bạn sao chép chính xác các khoảng trắng!)
Đây là môn đánh gôn , vì vậy bài dự thi có ít byte nhất sẽ thắng.
Người chiến thắng sẽ được chọn vào ngày 26 tháng 7 năm 2014. Bạn có thể đăng các giải pháp sau đó, nhưng bạn không thể thắng
Nếu bạn có bất kỳ câu hỏi, cho tôi biết trong các ý kiến.
Chúc bạn chơi golf vui vẻ!
#s, do đó, có một khoảng trống ở cuối vì chiều rộng là 10. Trong trường hợp này (sau một vài lần lặp), tảng đá sẽ nằm trong khoảng trắng (ở dưới cùng -góc phải).
