Bạn có một chồng bánh kếp trên một cái đĩa với một khối xi-rô trên đầu dày đến nỗi nó không thể chảy xuống hai bên. Bạn sẽ không vui khi ăn cho đến khi cả hai mặt của mỗi chiếc bánh đều ít nhất chạm vào xi-rô, nhưng ngay bây giờ chỉ có một khuôn mặt của bánh kếp hàng đầu.
Bạn biết rằng xi-rô sẽ không bao giờ ngấm qua dù chỉ một chiếc bánh, nhưng nó có thể được chuyển vô thời hạn thông qua tiếp xúc trực diện giữa hai chiếc bánh. Khi một mặt của bánh kếp đã chạm vào xi-rô, nó được coi là được tráng trong xi-rô mãi mãi, và sẽ làm cho bất kỳ mặt nào không có xi-rô chạm vào xi-rô cũng được tráng. Có thể chuyển xi-rô đến và từ phía trên cùng của tấm.
Bạn tiến hành phủ mỗi mặt bánh kếp bằng xi-rô bằng cách chèn một thìa bên dưới một hoặc nhiều bánh kếp và lật chúng lại, chính xác như được thực hiện trong phân loại bánh kếp . (Thật không may, thìa này có khả năng kháng xi-rô và không giúp phân phối xi-rô bằng cách chạm vào mặt bánh kếp.) Thật đáng buồn khi bạn mất dấu vết mà mặt bánh kếp đã chạm vào xi-rô nhưng bạn vẫn nhớ những cú lật bạn đã làm.
Dựa vào những lần lật trong quá khứ của bạn, bạn có thể xác định xem bánh kếp của bạn đã được phủ xi-rô chưa?
Thử thách
Viết chương trình lấy số nguyên dương N cho số lượng bánh kếp và danh sách các số nguyên dương (tất cả <= N) cho các lần lật mà bạn đã thực hiện cho đến nay. Mỗi số trong danh sách đại diện cho số lượng bánh được lật. Xuất ra một giá trị trung thực nếu bánh kếp được hoàn thành và phủ một giá trị giả nếu không. ( định nghĩa trung thực / giả mạo )
Đầu vào phải đến từ stdin hoặc dòng lệnh và đầu ra sẽ đi đến thiết bị xuất chuẩn (hoặc các lựa chọn thay thế gần nhất). Sẽ ổn nếu đầu vào của bạn cần thêm một chút định dạng: ví dụ [1, 1, 2, 2]
thay vì 1 1 2 2
cho danh sách.
Ví dụ
Giả sử N = 2, vì vậy chúng ta có một chồng hai bánh trên một đĩa, bắt đầu với xi-rô trên đầu.
Nếu danh sách là 1 1 2 2
, điều này có nghĩa là chúng tôi ...
- lật bánh kếp trên cùng - phủ lên mặt trên của bánh kếp dưới
- lật mặt trên một lần nữa - phủ mặt dưới ban đầu của bánh kếp trên cùng
- lật cả hai - phủ tấm
- lật cả hai lần nữa - phủ mặt dưới ban đầu của bánh kếp dưới
Vì tất cả bốn mặt được phủ, đầu ra sẽ giống như True
hoặc 1
.
Nếu danh sách là 1 2 2 1
, điều này có nghĩa là chúng tôi ...
- lật bánh kếp trên cùng - phủ lên mặt trên của bánh kếp dưới
- lật cả hai - không có gì
- lật cả hai lần nữa - không có gì
- lật mặt trên một lần nữa - phủ mặt dưới ban đầu của bánh kếp trên cùng
Vì mặt chạm vào đĩa vẫn không có xi-rô, đầu ra sẽ giống như False
hoặc 0
.
Ghi chú
- Danh sách lật có thể lớn tùy ý và có thể trống, trong trường hợp đầu ra là giả.
- Tấm này hoạt động như một chất mang xi-rô nhưng không thành vấn đề nếu nó được tráng hay không. (Trong thực tế, bất kỳ giải pháp lật nào cũng sẽ phủ lên tấm vì mặt bánh pancake mà nó chạm phải được phủ, nhưng bất kể.)
- Các tấm không thể được lật.
- Bạn có thể giả sử những chiếc bánh này là đĩa đơn vị không có mặt để nói, chỉ có hai mặt đối diện.
Chấm điểm
Đây là mã golf. Giải pháp ngắn nhất trong byte thắng.
Put syrup on the pancakes!
;)