ตัวอักขระ ASCII (รหัสฐานสิบหก 20 7E) เพื่อ ได้แก่ :
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
(โปรดสังเกตว่ามีพื้นที่ว่างอยู่ในนั้น)
สตริงนี้มีอักขระ ASCII ที่พิมพ์ได้ทั้งหมดอย่างน้อยหนึ่งครั้งในลำดับที่เพิ่มขึ้นเมื่ออ่านจากซ้ายไปขวา แต่ไม่ใช่ในลำดับที่ลดลง
สตริง
REVERSED:~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! NORMAL: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
มีอักขระ ASCII ที่พิมพ์ได้ทั้งหมดอย่างน้อยหนึ่งครั้งทั้งในการเพิ่มและลดลำดับ กล่าวอีกนัยหนึ่งเมื่ออักขระมีค่าด้วยรหัสตัวเลขการเพิ่มขึ้นและลดลงที่ยาวที่สุดจะมีความยาว 95 (จำนวนอักขระ ASCII ที่พิมพ์ได้)
ท้าทาย
เลือกชุดย่อยที่ต่อเนื่องกันของ N อักขระ ASCII ที่พิมพ์ได้เช่นLMNOP
(N = 5) เขียนโปรแกรมโดยใช้เฉพาะอักขระ N ตัวที่เอาต์พุตมีอักขระ ASCII ทั้งหมด 95 ตัวในการเพิ่มและลดอันดับเช่นเดียวกับตัวอย่างด้านบน
ผู้ชนะคือการส่งที่มีค่าต่ำที่สุด N ในกรณีที่ผูกรหัสที่สั้นที่สุดในหน่วยไบต์
หมายเหตุ
- ส่วนหนึ่งที่อยู่ติดกันหมายถึงชุดของ ASCIIs พิมพ์ที่ปรากฏในทิวแถวเช่นหรือ
LMNOP
89:;<=>
- เซ็ตย่อยที่อยู่ติดกันของคุณอาจ "วนไปรอบ ๆ " จาก
~
ไปยังช่องว่าง แต่จะมีการลงโทษ +3 ใน N ดังนั้น{|}~
มี N = 4 แต่{|}~ !
มี N = 6 + 3 = 9 - โปรแกรมของคุณอาจมีอักขระ ASCII ที่พิมพ์ได้ N ตัวเท่านั้นจากชุดย่อยที่ต่อเนื่องที่คุณเลือก พวกเขาไม่ได้ทั้งหมดต้องปรากฏและอาจปรากฏหลายครั้งในลำดับใด ๆ (ไม่อนุญาตให้ใช้ ASCII ที่ไม่สามารถพิมพ์ได้ทั้งหมดและไม่ใช่ ASCII ทั้งหมดหมายความว่าไม่อนุญาตให้ใช้แท็บและการขึ้นบรรทัดใหม่)
- ผลลัพธ์ของคุณอาจมีอักขระ ASCII ที่พิมพ์ได้เท่านั้นและต้องมีความยาวน้อยกว่า 10,000 อักขระ
- ผลลัพธ์ที่เพิ่มขึ้นและลดลงของลำดับที่ยาวที่สุดของคุณจะต้องมีความยาว 95 (ดังอธิบายข้างต้น)
- ส่งออกไปยัง stdout ไม่มีอินพุต
- N เป็นจำนวนเต็มบวกน้อยกว่า 96