Đây là chủ đề của cảnh sát. Đối với chủ đề của tên cướp, đi đến đây .
Giới thiệu
Đối với thử thách Cops / Robbers này, cảnh sát sẽ viết các chương trình sản xuất đầu ra và đan xen chúng lại với nhau. Nhiệm vụ của tên cướp là chọn ra các chương trình của cảnh sát để tạo ra kết quả mong muốn.
Quy tắc sao chép
Các cảnh sát có thể sử dụng tổng cộng tối đa 256 byte để ghi từ 2 đến 8 chương trình (bao gồm), tất cả đều phải tạo ra một số đầu ra. Tất cả các chương trình được viết phải cùng một ngôn ngữ. Cảnh sát sẽ "đan xen" các chương trình của họ lại với nhau để khiến bọn cướp khó tìm ra chương trình là gì.
Bây giờ cho một mô tả của đan xen. Hãy xem xét các chuỗi đại diện cho các chương trình khác nhau. Quá trình đan xen là sự lặp đi lặp lại của ký tự đầu tiên của bất kỳ chương trình nào và nối nó đến cuối chuỗi mới cho đến khi không còn ký tự nào trong bất kỳ chương trình nào. Ví dụ, nếu hai chương trình là lion
và TIGER
, một đan xen có thể là TIliGoEnR
. Tuy nhiên, các chương trình không thể được xáo trộn theo bất kỳ cách nào, vì vậy RoITEnlGi
không được chấp nhận.
Cần lưu ý rằng khi các ký tự của tất cả trừ một chương trình được xóa khỏi kết quả đan xen, chương trình còn lại sẽ được hiển thị nguyên vẹn. Loại bỏ các chữ cái TIGER
từ TIliGoEnR
kết quả trong lion
.
Tất cả các chương trình và đầu ra của cảnh sát phải chỉ chứa các ký tự ASCII có thể in (20-7E) và các dòng mới. Các chương trình không được chứa lỗi và phải chạy trong 10 giây trên một máy hợp lý. Đối với bất kỳ đệ trình, phải có một thông dịch viên miễn phí của ngôn ngữ ở đâu đó. Không cho phép thêm nhận xét vào nội dung gửi, cũng như băm và các hình thức mật mã khác. Các chương trình trống không được phép (Xin lỗi Stuck ).
Cảnh sát sẽ đăng mã đan xen, ngôn ngữ, số lượng chương trình khác nhau được sử dụng và đầu ra cho mỗi chương trình. Rất cảm ơn Martin vì đã viết kịch bản CJam này để tự động đan xen các chương trình của bạn.
Các chương trình được coi là an toàn sau một tuần đã trôi qua kể từ thời điểm đăng. Tại thời điểm đó, cảnh sát phải đăng các chương trình riêng lẻ để nhận điểm.
Chấm điểm
Có hai thành phần được thêm vào với nhau khi chấm điểm một bài nộp an toàn.
- 256 chia cho số lượng 2 được nâng lên thành sức mạnh của số lượng chương trình được sử dụng.
- Vòng số byte trong sự đan xen lên với sức mạnh khu vực gần 2 và chia nó thành 256.
Ví dụ: nếu mục nhập TIliGoEnR
(9 byte) an toàn, nó sẽ nhận được 256/2 ^ 2 + 256/16 = 80 điểm.
Khi đệ trình của cảnh sát bị bẻ khóa, cảnh sát mất 16 điểm. Cảnh sát phải chỉ ra rằng trình của họ đã bị bẻ khóa.
Người chiến thắng trong thử thách của cảnh sát sẽ là người có nhiều điểm nhất sau một khoảng thời gian đủ để mọi người tham gia.
Bảng xếp hạng
Đây là một công việc đang được tiến hành đã được điều chỉnh bởi intrepidcoder từ câu hỏi này .
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown chính xác :
# Language Name, N programs, M bytes; Score ###/### (if safe/cracked)
Bất cứ điều gì sau dấu chấm phẩy sẽ bị bỏ qua, vì vậy bạn có thể đặt điểm số của mình ở đó.
Nếu trình của bạn an toàn, hãy đặt một tiêu đề như thế này:
# Language Name, safe, N programs, M bytes; Score ###
Nếu nó bị nứt, hãy đặt một tiêu đề như thế này:
# Language Name, [cracked](link-to-crack), N programs, M bytes; Score -16
|||
chẳng hạn) và sau đó thay thế N
trong các mã với một chuỗi chứa delimiter của bạn, ví dụ "|||"
. (@Eridan cảm thấy thoải mái khi đưa điều này vào thử thách.)