QOJ.ac

QOJ

总分: 100 仅输出

#13207. การเดินทางอันไม่สิ้นสุด

统计

กาลครั้งหนึ่ง มีเด็กคนหนึ่งชื่อ Kino ซึ่งชอบเดินทางมากและเคยไปยังสถานที่แปลกประหลาดมากมาย วันหนึ่งเขามาถึงสะพานแห่งหนึ่งและพบว่ามีรถเปิดประทุนจอดอยู่บนสะพานหลายคัน โชคร้ายที่สะพานแคบมากจนรถเปิดประทุนผ่านได้ครั้งละคันเท่านั้น แต่รถบนสะพานต่างไม่ยอมหลีกทางให้กัน ทำให้รถจากทั้งสองทิศทางติดอยู่ด้วยกันและไม่สามารถผ่านไปได้

ต่อมา ผู้สร้างสะพานเพิ่มความสามารถใหม่ให้สะพาน โดยสามารถหมุนสะพานบางช่วงได้ $180$ องศา ทำให้รถเปิดประทุนบนช่วงนั้นกลับหัวกลับท้าย ดังภาพต่อไปนี้:

problem_13207_b4c571b3e446518bf87b2c36b99a61f2.png

ภาพที่ 1 รถเปิดประทุน 321 กลายเป็น 123 หลังการหมุน

ดังภาพ เมื่อรถเปิดประทุน $3,2,1$ พบกับรถ $4,5$ บนสะพาน ก็เกิดการจราจรติดขัด เราสามารถหมุนช่วงที่มีรถ $3,2,1$ ทำให้ลำดับรถบนสะพานกลายเป็น $1,2,3,4,5$ และรถทุกคันหันไปทางเดียวกัน จึงสามารถขับลงจากสะพานได้ แน่นอนว่านี่เป็นเพียงตัวอย่างง่าย ๆ สถานการณ์บนสะพานจริงซับซ้อนกว่านี้มาก และต้องหมุนหลายครั้งจึงจะได้รูปแบบ $1,2,3,4,5$

แต่หลังออกแบบสะพานเสร็จ ผู้ออกแบบก็ออกเดินทางเช่นกัน ไม่มีชาวบ้านที่เหลืออยู่คนใดควบคุมสะพานมหัศจรรย์นี้เป็น รถบนสะพานจึงยิ่งสับสนวุ่นวาย จนในที่สุดวันหนึ่งกลายเป็นสถานการณ์ปัจจุบัน เพื่อข้ามสะพาน Kino พบอุปกรณ์ควบคุมและคู่มืออยู่ข้างสะพาน จึงค้นพบวิธีควบคุมสะพานอีกครั้ง ด้วยความช่วยเหลือของชาวบ้านใกล้เคียง เขาจัดรถบนสะพานให้เรียงเป็น $1,2,3,\ldots$ และหันไปทางเดียวกันได้สำเร็จ คุณรู้หรือไม่ว่าเขาทำอย่างไร?

ข้อมูลนำเข้า

ข้อนี้เป็นโจทย์แบบส่งเฉพาะคำตอบ ไฟล์นำเข้า convertible1.in ถึง convertible10.in อยู่ในไดเรกทอรีของผู้ใช้แล้ว บรรทัดแรกของไฟล์นำเข้าระบุจำนวนรถเปิดประทุนบนสะพาน $n$ ซึ่งรถมีหมายเลข $1,2,\ldots,n$ บรรทัดที่สองระบุตำแหน่งและทิศทางของรถบนสะพานด้วยลำดับของ $+i$ หรือ $-i$ หากตำแหน่งที่ $j$ เป็น $-i$ หมายถึงมีรถหมายเลข $i$ อยู่ที่ตำแหน่งที่ $j$ ของสะพานและหันไปทางขวา หากเป็น $+i$ หมายถึงรถหมายเลข $i$ อยู่ที่ตำแหน่งที่ $j$ และหันไปทางซ้าย

ข้อมูลส่งออก

คุณต้องวางไฟล์ส่งออก convertible1.out ถึง convertible10.out ไว้ในไดเรกทอรีของผู้ใช้ โดยไม่ต้องส่งโปรแกรม บรรทัดแรกของไฟล์ส่งออกระบุจำนวนครั้งที่หมุน $m$ จากนั้นอีก $m$ บรรทัด แต่ละบรรทัดระบุการหมุนหนึ่งครั้ง โดยให้ตำแหน่งขอบเขตซ้ายและขอบเขตขวา คำตอบของคุณต้องทำให้ลำดับสุดท้ายเป็น $1,2,3,\ldots,n$ ไม่ใช่ $-1,-2,-3,\ldots,-n$ หรือรูปแบบอื่น

ตัวอย่าง

ข้อมูลนำเข้า 1

5
-3 -2 -1 4 5

ข้อมูลส่งออก 1

1
1 3

งานย่อย

แต่ละกรณีทดสอบมีคะแนนเต็ม 10 คะแนน คะแนนที่ได้ขึ้นอยู่กับอัตราส่วนคุณภาพคำตอบของคุณต่อคำตอบอ้างอิง

วิธีทดสอบโปรแกรมของคุณ

โจทย์นี้มีโปรแกรมตรวจสอบข้อมูลส่งออก convertible_c ให้ ใช้งานดังนี้:

#./convertible_c 3

คำสั่งนี้ตรวจสอบว่า convertible3.out ถูกต้องตามข้อกำหนดหรือไม่


或者逐个上传:

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.