นี่คือด้ายของตำรวจ สำหรับด้ายโจรไปที่นี่
บทนำ
สำหรับความท้าทายของ Cops / Robbers ตำรวจจะเขียนโปรแกรมที่สร้างผลผลิตและรวมเข้าด้วยกัน มันเป็นหน้าที่ของโจรที่จะแยกโปรแกรมของตำรวจออกมาเพื่อสร้างผลลัพธ์ที่ต้องการ
กฎตำรวจ
ตำรวจอาจใช้ผลรวมสูงสุด 256 ไบต์ในการเขียนระหว่างโปรแกรม 2 ถึง 8 (รวม) ซึ่งทั้งหมดต้องสร้างเอาต์พุตบางตัว โปรแกรมทั้งหมดที่เขียนต้องเป็นภาษาเดียวกัน ตำรวจจะ "ประสาน" โปรแกรมของพวกเขาร่วมกันเพื่อให้ยากขึ้นสำหรับโจรที่จะคิดออกว่าโปรแกรมคืออะไร
ตอนนี้สำหรับคำอธิบายของการผสมผสาน พิจารณาสตริงที่แทนโปรแกรมต่าง ๆ กระบวนการของการรวมเข้าด้วยกันเป็นการดึงออกจากตัวอักษรตัวแรกของโปรแกรมใด ๆ และต่อเข้ากับส่วนท้ายของสตริงใหม่จนกว่าจะไม่มีตัวอักษรในโปรแกรมใด ๆ เหลืออยู่ ตัวอย่างเช่นหากมีสองโปรแกรมlion
และTIGER
มีการผสมผสานTIliGoEnR
ระหว่างกัน อย่างไรก็ตามโปรแกรมไม่สามารถถูกรบกวนในทางใดทางหนึ่งดังนั้นจึงRoITEnlGi
ไม่เป็นที่ยอมรับ
มันควรจะสังเกตว่าเมื่อตัวละครของทุกคนยกเว้นหนึ่งโปรแกรมจะถูกลบออกจากผลของการผสมผสาน, โปรแกรมที่เหลือจะแสดงเหมือนเดิม การถอดตัวอักษรTIGER
จากผลลัพธ์ในTIliGoEnR
lion
ทั้งหมดของโปรแกรมตำรวจและผลจะต้องมีเพียงตัวอักษรพิมพ์ ASCII (20-7E) และการขึ้นบรรทัดใหม่ โปรแกรมต้องไม่มีข้อผิดพลาดและต้องทำงานใน 10 วินาทีบนเครื่องที่เหมาะสม สำหรับการส่งใด ๆ จะต้องมีล่ามภาษาฟรีที่ใดที่หนึ่ง ไม่อนุญาตให้เพิ่มความคิดเห็นในการส่งเช่นเดียวกับการแฮชและการเข้ารหัสในรูปแบบอื่น ๆ ไม่อนุญาตให้ใช้โปรแกรมเปล่า (ขออภัยติดอยู่ )
ตำรวจจะโพสต์รหัส interweaved ภาษาจำนวนโปรแกรมที่ใช้และผลลัพธ์สำหรับแต่ละโปรแกรม ขอบคุณมาร์ตินอย่างมากสำหรับการเขียนสคริปต์ CJam นี้เพื่อรวมโปรแกรมของคุณเข้าด้วยกันโดยอัตโนมัติ
โปรแกรมจะถือว่าปลอดภัยหลังจากผ่านไปหนึ่งสัปดาห์นับจากเวลาที่โพสต์ ณ จุดนั้นตำรวจจะต้องโพสต์แต่ละโปรแกรมเพื่อรับคะแนน
เกณฑ์การให้คะแนน
มีสององค์ประกอบที่ถูกรวมเข้าด้วยกันเมื่อให้คะแนนการส่งที่ปลอดภัย
- 256 หารด้วยปริมาณ 2 ยกกำลังของจำนวนโปรแกรมที่ใช้
- ปัดเศษจำนวนไบต์ในการรวมกันเป็นกำลังที่ใกล้เคียงที่สุดของ 2 และหารเป็น 256
ตัวอย่างเช่นหากรายการTIliGoEnR
(9 ไบต์) ปลอดภัยรายการนั้นจะได้รับ 256/2 ^ 2 + 256/16 = 80 คะแนน
เมื่อการส่งของตำรวจถูกแคร็กตำรวจสูญเสีย 16 คะแนน ตำรวจต้องระบุว่าการส่งของพวกเขาได้รับการแตกร้าว
ผู้ชนะของการท้าทายของตำรวจจะเป็นคนที่มีคะแนนมากที่สุดหลังจากช่วงเวลาที่เพียงพอสำหรับคนที่จะเข้าร่วม
ลีดเดอร์บอร์ด
นี่เป็นงานที่อยู่ระหว่างดำเนินการซึ่งดัดแปลงโดยintrepidcoderจากคำถามนี้
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ที่ถูกต้อง :
# Language Name, N programs, M bytes; Score ###/### (if safe/cracked)
ทุกสิ่งหลังจากเซมิโคลอนจะถูกละเว้นดังนั้นคุณสามารถใส่คะแนนของคุณได้
หากการส่งของคุณปลอดภัยให้ใส่หัวข้อดังนี้:
# Language Name, safe, N programs, M bytes; Score ###
ถ้ามันแตกให้ใส่หัวข้อดังนี้:
# Language Name, [cracked](link-to-crack), N programs, M bytes; Score -16
|||
พูด) แล้วแทนที่ในรหัสที่มีสตริงที่มีตัวคั่นของคุณเช่นN
"|||"
(@Eridan รู้สึกอิสระที่จะรวมสิ่งนี้ไว้ในการท้าทาย)