Ontak-07-hyperclock

จาก Theory Wiki
รุ่นแก้ไขเมื่อ 02:22, 16 พฤษภาคม 2556 โดย Jittat (คุย | มีส่วนร่วม)
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา

Hyperclock

Source: [1]

Brainy Smurf ได้สรุปว่าวันหนึ่งนั้นช่างสั้นยิ่งนัก เขาจึงเขียนหนังสือ Quotations of Brainy Smurf ไม่จบสักที เขาตัดสินใจที่จะไปพบกับ Father Time เพื่อขอร้องให้เพิ่มเวลาในแต่ละวันเป็น 48 ชั่วโมง Father Time ไม่ต้องการทำตามคำขอ จึงได้บอกให้ Brainy Smurf แก้ปริศนา Hyperclock ให้ได้เสียก่อย

Hyperclock ประกอบไปด้วยนาฬิกา N เรือน แต่ละเรือนมีเข็มนาฬิกาเดียวและมีตัวเลขอยู่บนนั้น สำหรับ 1 <= i <= N จะมีตัวเลข 1 ถึง ki เมื่อเริ่มต้น เข็มนาฬิกาทุกเรือนจะชี้ที่เลข 1 เงื่อนไขขอปริศนาเป็นดังนี้

คุณจะต้องปรับนาฬิกา ในแต่ละรอบที่คุณปรับ คุณสามารถปรับเข็มนาฬิกาเรือนใดก็ได้หนึ่งเรือน จะปรับไปตามเข็มหรือทวนเข็มก็ได้ และในรอบสุดท้าย เข็มนาฬิกาทุกเรือนจะต้องกลับมาที่ตำแหน่งเริ่มต้น นอกจากนี้ ระหว่างการปรับนาฬิการ ทุก ๆ รูปแบบที่เป็นไปได้ของเข็มนาฬิกาจะต้องปรากฏหนึ่งครั้งพอดี

ช่วยเขาหน่อย!

Input

บรรทัดแรกจะมีจำนวนเต็มหนึ่งจำนวนคือ N จากนั้นแต่ละบรรทัดถัดไปจะระบุจำนวนเต็มหนึ่งจำนวนที่มีค่ามากกว่า 1 กล่าวคือ ในบรรทัดที่ i+1 จะระบุจำนวนเต็ม ki จำนวนรูปแบบที่เป็นไปได้ นั่นคือ k1 x k2 x k3 x ... x kN จะมีค่าไม่เกิน 106

Output

ถ้าไม่มีคำตอบให้พิมพ์ NIE ไม่ใช่นั้น ให้พิมพ์คำตอบจำนวน k1 x k2 x k3 x ... x kN แถว แต่ละแถวระบุจำนวนเต็มสองจำนวน จำนวนแรกคือหมายเลขของนาฬิกาที่จะหมุน จำนวนที่สองระบุทิศทาง โดยที่ 1 แทนทิศตามเข็มนาฬิกา และ -1 แทนทิศทวนเข็มนาฬิกา ถ้ามีคำตอบที่เป็นไปได้หลายแบบ คุณสามารถตอบแบบใดก็ได้

ตัวอย่าง

สำหรับข้อมูลนำเข้า:

3
2
2
3

คำตอบหนึ่งที่เป็นไปได้คือ:

1 1
2 1
1 -1
3 1
1 1
2 -1
3 1
2 1
1 -1
2 -1
3 -1
3 -1

Task author: Jakub Pawlewicz (story by Tomasz Idziaszek).