ऐलिस और बॉब एक कार्ड गेम खेलना पसंद करते हैं, जिसमें कार्ड्स के डेक को लगातार नॉनगनेटिव पूर्णांकों के साथ गिना जाता है।
ऐलिस का डेक पर फेरबदल करने का एक विशेष तरीका है, यद्यपि। सबसे पहले, वह डेक से शीर्ष कार्ड लेती है और इसे डेक के नीचे रखती है। फिर वह अगला कार्ड निकालती है, और उसके साथ एक ढेर शुरू करती है। फिर, फिर से वह शीर्ष कार्ड को नीचे तक ले जाती है, और नए शीर्ष कार्ड को ढेर पर रख देती है। वह इस प्रक्रिया को तब तक दोहराती है जब तक कि वह डेक को खाली न कर दे, जिस बिंदु पर ढेर नया डेक है।
deck | pile
-----------+-----------
3 1 4 0 2 |
1 4 0 2 3 |
4 0 2 3 | 1
0 2 3 4 | 1
2 3 4 | 0 1
3 4 2 | 0 1
4 2 | 3 0 1
2 4 | 3 0 1
4 | 2 3 0 1
| 4 2 3 0 1
4 2 3 0 1 |
चित्र 1: एलिस ने 5-कार्ड डेक "3, 1, 4, 0, 2" पर अपना फेरबदल किया। कार्ड के पीछे सभी बाईं ओर हैं।
एक दिन, बॉब ने घोषणा की कि वह एक सप्ताह की छुट्टी ले रहा है। ऐलिस, खेल के साथ खेलने के लिए कोई भी नहीं है, उसके दोस्त ईव को प्रभावित करता है। अब, ईव एक बेशर्म धोखेबाज है, इसलिए जब वह ऐलिस की अजीबोगरीब फेरबदल देखता है, तो उसे पता चलता है कि वह अपने फायदे के लिए पहले से डेक को ढेर कर सकता है!
जब ईव पहले दिन के बाद घर जाता है, तो वह गेम के बारे में कुछ विश्लेषण करती है और यह पता लगाती है कि कार्ड के ऑर्डर 0, 1, 2, 3, 4, 5, ... में उसके सबसे अच्छे हालात हैं। डेक में कितने कार्ड थे, हालांकि वह अपनी बांह पर कुछ कोड लिखने के लिए एक अप्रशिक्षित योजना को पकड़ता है, जब वह दौड़ता है, तो डेक का आकार लेता है और आदेश को दिखाता है कि ईव को कार्ड लगाने की जरूरत है, ताकि जब ऐलिस डेक को फेरबदल करता है, अंतिम डेक 0, 1, 2, 3, क्रम में है ...
यह वास्तव में ईव के लिए कोई मायने नहीं रखता है कि कोड किस भाषा में है (वह उन सभी को जानता है), या क्या कोड एक फ़ंक्शन है जो पूर्णांक तर्क ले रहा है और एक सरणी लौटा रहा है, या एक कमांड लाइन तर्क या STDIN के माध्यम से इनपुट लेने वाला एक पूरा कार्यक्रम है। और STDOUT को परिणाम लिखना। हालांकि, उसे ऐलिस को देखने और उसे पकड़ने की संभावना को कम करने के लिए कोड की यथासंभव आवश्यकता होती है।
अनैतिक रूप से यह हो सकता है, क्या आप लोग ईव को बाहर निकालने में मदद कर सकते हैं?
उदाहरण इनपुट और आउटपुट:
in out
1 0
2 0 1
5 2 4 0 3 1
10 2 9 4 8 0 7 3 6 1 5
52 6 51 25 50 12 49 24 48 1 47 23 46 11 45 22 44 5 43 21 42 10 41 20 40 2 39 19
38 9 37 18 36 4 35 17 34 8 33 16 32 0 31 15 30 7 29 14 28 3 27 13 26
shuffle(shuffle(range(5))) == range(5)