QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 256 MB Points totaux : 100

#11099. เคาะกุญแจ

Statistiques

Goran กำลังพักฟื้นจากการผ่าตัดเข่า และกำลังทดลองกับสมาร์ตการ์ดที่ใช้เก็บกุญแจเข้ารหัส ในปัญหานี้ กุญแจคือสตริงบิตความยาว $3n$ โดย $n$ เป็นจำนวนเต็มบวก บิตแต่ละตัวมีดัชนีเป็นจำนวนเต็มตั้งแต่ $1$ ถึง $3n$ จากซ้ายไปขวา น้ำหนักของกุญแจคือจำนวนคู่บิตที่อยู่ติดกันและมีค่าต่างกัน บวกด้วยหนึ่ง ตัวอย่างเช่น กุญแจ 000 มีน้ำหนัก $1$ ส่วนกุญแจ 011010100 มีน้ำหนัก $7$

เขาพบว่าสามารถดัดแปลงกุญแจได้ด้วยการส่งกระแสไฟฟ้าสั้น ๆ ผ่านวงจรของสมาร์ตการ์ด โดยเฉพาะอย่างยิ่ง เขาสามารถทำการดำเนินการต่อไปนี้ได้อย่างแน่นอน: เลือกบิตที่อยู่ติดกันสองบิตใดก็ได้ แล้วกลับค่าทั้งสองบิต ตัวอย่างเช่น การดำเนินการหนึ่งครั้งสามารถเปลี่ยนกุญแจ 000 เป็น 110

เมื่อกำหนดกุญแจความยาว $3n$ จงหาลำดับการดำเนินการใด ๆ ไม่เกิน $n$ ครั้งที่เปลี่ยนกุญแจที่กำหนดให้เป็นกุญแจที่มีน้ำหนักอย่างน้อย $2n$ รับประกันว่ามีคำตอบเสมอ

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

บรรทัดแรกมีสตริงที่ประกอบด้วยตัวเลข 0 และ 1 ซึ่งเป็นกุญแจเริ่มต้น ความยาวของกุญแจคือ $3n$ โดย $n$ เป็นจำนวนเต็มบวกที่ $1 \le n \le 100\,000$

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

บรรทัดแรกต้องมีจำนวนเต็ม $m$ โดย $0 \le m \le n$ ซึ่งเป็นจำนวนการดำเนินการในคำตอบของคุณ บรรทัดถัดมาต้องมีจำนวนเต็ม $m$ จำนวน $a_1,a_2,\ldots,a_m$ ที่อธิบายคำตอบของคุณ โดย $a_k$ คือดัชนีของบิตด้านซ้ายในสองบิตที่กลับค่าในขั้นตอนที่ $k$

หากกุญแจเริ่มต้นมีน้ำหนักอย่างน้อย $2n$ อยู่แล้ว คุณสามารถพิมพ์เพียงจำนวนเต็ม $0$ ได้

ตัวอย่าง

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

000000000

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

3
2 5 6

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

111001000111

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

2
3 9

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

010101

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

0

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.