ในสหรัฐอเมริกาทั้งสองทิศทางที่ตรงข้ามของการจราจรบนถนนจะถูกคั่นด้วยเส้นสีเหลืองประถ้าอนุญาตให้ผ่านและเส้นสีเหลืองทึบสองเส้นถ้าผ่านไม่ได้รับอนุญาต
(เพียงด้านเดียวสามารถประเพื่อให้ผ่านด้านนั้นและเส้นสีเหลืองอาจหมายถึงสิ่งอื่น ๆ เช่นกึ่งกลางหรือเลนย้อนกลับ แต่เราไม่ได้เกี่ยวข้องกับกรณีเหล่านี้)
จงเขียนโปรแกรมที่ใช้ในที่ทำงานระยะเวลาในการเข้ารหัสสตริงของP
สำหรับการส่งผ่านและN
สำหรับไม่ผ่านและพิมพ์รุ่น ASCII ของถนนที่สอดคล้องกัน ยกเว้นเส้นกลางถนนมีรูปแบบเดียวกันเสมอซึ่งสามารถอนุมานได้ง่ายจากตัวอย่างด้านล่าง
จะมีตัวเลขทศนิยมเป็นบวกก่อนละP
และN
ในสตริงที่ป้อน หมายเลขนี้กำหนดความยาวของพื้นที่ผ่านหรือไม่ผ่านของส่วนปัจจุบันของถนน
ตัวอย่าง
อินพุตของ12N
จะผลิต 12 คอลัมน์ของถนนที่ไม่ผ่าน (เส้นกลางทั้งหมด=
):
____________
============
____________
อินพุตของ12P
จะผลิต 12 คอลัมน์ของถนนที่ผ่าน (เส้นกลาง-
ซ้ำ):
____________
- - - - - -
____________
การผ่านและไม่ผ่านสามารถรวมกันได้เช่น4N4P9N7P1N1P2N2P
จะสร้าง:
______________________________
====- - =========- - - -=-==-
______________________________
เหล่านี้คือ 4 ไม่มีคอลัมน์ผ่านแล้ว 4 ผ่านแล้ว 9 ไม่ผ่านฯลฯ
โปรดทราบว่าเขตผ่านจะเริ่มต้นด้วยเส้นประ ( -
) ทางด้านซ้ายสุดไม่ใช่ช่องว่าง ( ) สิ่งนี้จำเป็น
รายละเอียด
- อินพุตจะไม่มีสอง
N
โซนหรือสองP
โซนในหนึ่งแถว เช่น4P5P
จะไม่เกิดขึ้น - คุณไม่จำเป็นต้องสนับสนุนจดหมายโดยไม่มีหมายเลขบวกนำหน้า ธรรมดา
P
จะเป็น1P
ธรรมดาจะเป็นN
1N
- อาจมีช่องว่างต่อท้ายตราบใดที่ไม่ขยายเกินคอลัมน์สุดท้ายของถนน อาจมีบรรทัดใหม่ต่อท้ายที่เป็นตัวเลือกหนึ่งบรรทัด
- แทนที่จะเป็นโปรแกรมคุณสามารถเขียนฟังก์ชั่นที่ใช้ในสตริงที่เข้ารหัสแบบรันไทม์แล้วพิมพ์หรือส่งคืนถนน ASCII
- รับอินพุตในวิธีมาตรฐานใด ๆ (stdin, บรรทัดคำสั่ง, ฟังก์ชัน arg)
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ Tiebreaker เป็นโพสต์ก่อนหน้า