एक प्रसिद्ध प्रमेय है कि किसी भी क्रमचय को चक्र के एक सेट में विघटित किया जा सकता है । आपका काम ऐसा करने के लिए सबसे कम संभव कार्यक्रम लिखना है।
इनपुट:
दो लाइनें। पहले में एक संख्या होती है N
, दूसरे में रिक्त स्थान द्वारा अलग की गई N
सीमा में [0,N-1]
अलग- अलग पूर्णांक होते हैं । ये पूर्णांक N
तत्वों के क्रमचय का प्रतिनिधित्व करते हैं।
आउटपुट:
क्रमचय में प्रत्येक चक्र के लिए एक पंक्ति। प्रत्येक पंक्ति को चक्र क्रम में पूर्णांकों की एक अलग-अलग सूची होनी चाहिए।
चक्र किसी भी क्रम में आउटपुट हो सकते हैं, और प्रत्येक चक्र किसी भी स्थिति में शुरू हो सकता है।
उदाहरण 1:
8
2 3 4 5 6 7 0 1
यह इनपुट क्रमचय 0-> 2, 1-> 3, 2-> 4, 3-> 5, 4-> 6, 5-> 7, 6-> 0, 7-> 1 को एन्कोड करता है। यह इस तरह चक्र में विघटित होता है:
0 2 4 6
1 3 5 7
समान रूप से मान्य आउटपुट होगा
5 7 1 3
2 4 6 0
उदाहरण 2:
8
0 1 3 4 5 6 7 2
मान्य आउटपुट:
0
1
4 5 6 7 2 3
>C.