বুলগেরিয়ান সলিটায়ার একক খেলোয়াড়ের খেলা যা মার্টিন গার্ডনার দ্বারা বৈজ্ঞানিক আমেরিকান ভাষায় তার গাণিতিক কলামে জনপ্রিয় হয়েছিল ।
আপনার কাছে N
অভিন্ন কার্ড রয়েছে, পাইলসে বিভক্ত। আপনি প্রতিটি গাদা থেকে একটি কার্ড নেন এবং সরানো কার্ডগুলি দিয়ে একটি নতুন গাদা গঠন করেন। আপনি ইতিমধ্যে দেখেছেন এমন কোনও স্থানে না পৌঁছানো পর্যন্ত আপনি এই প্রক্রিয়াটি পুনরাবৃত্তি করুন এবং এভাবে চালিয়ে যাওয়া লুপটির পুনরাবৃত্তি করবে।
উদাহরণস্বরূপ, বলুন আপনার 8
কার্ড রয়েছে, একটি গাদা 5
এবং একটি গাদা মধ্যে বিভক্ত 3
। আমরা সাজানো অনুক্রমে গাদা মাপ লিখুন: 5 3
। গেমটির একটি প্রতিলিপি এখানে দেওয়া হয়েছে:
5 3
4 2 2
3 3 1 1
4 2 2
আপনিই প্রথম দুই পাইলস প্রতিটি থেকে একটি কার্ড সরাতে, স্তূপ রেখে 4
এবং 2
আর একটি নতুন তৈরি গাদা 2
, দান 4 2 2
। পরবর্তী পদক্ষেপে, এই হ্রাস 3 1 1
একটি নতুন স্তূপের সাথে অনুসরণ করা হয় 3
। অবশেষে, শেষ পদক্ষেপটি আকারের স্তূপগুলি খালি করে 1
এবং উত্পাদন করে 4 2 2
যা ইতিমধ্যে প্রদর্শিত হয়েছে, তাই আমরা থামি।
নোট করুন যে গাদা আকারের যোগফল একই থাকে।
আপনার লক্ষ্য একটি প্রদত্ত প্রারম্ভিক কনফিগারেশন থেকে গেমটির এমন প্রতিলিপি মুদ্রণ করা। এটি কোড গল্ফ, তাই খুব কম বাইট জিতেছে।
ইনপুট
প্রাথমিক স্তূপ আকারের প্রতিনিধিত্ব করে অবতরণ ক্রমে ধনাত্মক সংখ্যার একটি তালিকা। STDIN বা ফাংশন ইনপুট এর মাধ্যমে ইনপুট নিন। আপনি চান তালিকার মতো কাঠামো ব্যবহার করতে পারেন।
আপনি N
ইনপুট হিসাবে কার্ডের মোট সংখ্যা পাবেন না ।
আউটপুট
পাইথ আকারের ক্রম প্রিন্ট করুন বুলগেরিয়ান সলিটায়ারের খেলাটি চলে। নোট করুন যে মুদ্রণ আবশ্যক, ফিরে না। প্রতিটি পদক্ষেপের নিজস্ব লাইন হওয়া উচিত।
প্রতিটি রেখার অবতীর্ণ ক্রমের কোনও সংখ্যা নেই সহ ধনাত্মক সংখ্যার ক্রম হওয়া উচিত 0
। আপনার বিভাজক থাকতে পারে এবং শুরু এবং শেষ টোকেন থাকতে পারে (উদাহরণস্বরূপ, [3, 3, 1, 1]
)। সংখ্যার একাধিক সংখ্যা থাকতে পারে, তাই এগুলি কোনওভাবে পৃথক করা উচিত।
পুনরাবৃত্তি পৌঁছানো সহ আপনি যে পাইল-সাইজের বিভাজনগুলি দেখেছেন তা মুদ্রণ করুন। সুতরাং, প্রথম লাইনটি ইনপুট হওয়া উচিত, এবং শেষ লাইনটি পূর্ববর্তী লাইনের পুনরাবৃত্তি হওয়া উচিত। অন্য কোনও পুনরাবৃত্তি হওয়া উচিত নয়।
পরীক্ষার মামলা
>> [1]
1
1
>> [2]
2
1 1
2
>> [1, 1, 1, 1, 1, 1, 1]
1 1 1 1 1 1 1
7
6 1
5 2
4 2 1
3 3 1
3 2 2
3 2 1 1
4 2 1
>> [5, 3]
5 3
4 2 2
3 3 1 1
4 2 2
>> [3, 2, 1]
3 2 1
3 2 1
>> [4, 4, 3, 2, 1]
4 4 3 2 1
5 3 3 2 1
5 4 2 2 1
5 4 3 1 1
5 4 3 2
4 4 3 2 1
v$input()$
সঙ্গেQ
। ২. যদি আপনি তালিকাটি হ্রাস ক্রমে সংরক্ষণ করেন তবে আপনার কোনও প্রয়োজন নেইN
:W!}QYQ~Y]Q=Q_S+fTmtdQ]lQ;Q