আপনি যে মজাদার পিনউইলগুলিকে আঘাত করেছিলেন সেগুলি মনে রাখবেন এবং সেগুলি গোল-গোল করে স্পিন করে? কোড এক!
একটি পিনউইলে \ | / _
এর কেন্দ্র এবং বাহু আঁকার অক্ষরের সেট থাকবে । একটি সম্ভাব্য পিনউইল এর মতো দেখতে পেল:
|
|
|_ ___
___|_|
|
|
|
তবে এমন পিনউইল কী যা ঘুরতে পারে না? মজা নেই! প্রতীকগুলি পুনরায় সাজিয়ে আমরা এটি স্পিন করতে পারি:
/
\ /
\ /
\/\
\/\
/ \
/ \
/
চ্যালেঞ্জটি হ'ল এমন একটি প্রোগ্রাম তৈরি করা যা তিনটি পূর্ণসংখ্যার সময় নেয় এবং নীচে বর্ণিত হিসাবে একটি পিনহিল আউটপুট দেয়। এর মধ্যে প্রথমটি হ'ল অস্ত্রগুলির সংখ্যা, দ্বিতীয়টি পিনহিলের বাহুর দৈর্ঘ্য এবং তৃতীয়টি এটি ঘনির কাঁটার বিপরীতে এক-অষ্টম বার স্পিন করবে তার সংখ্যা।
আপনি নিম্নলিখিত অনুমান করতে পারেন:
- অস্ত্রের সংখ্যা সর্বদা 0, 1, 2, 4 বা 8 হবে।
- সমস্ত অস্ত্র একে অপরের থেকে পৃথকভাবে পৃথক করা হবে।
পিনউইলের প্রাথমিক অবস্থানটির কেন্দ্রস্থলটি এর মতো থাকবে:
_ |_|
যদি অস্ত্রের সংখ্যা 1 হয় তবে আপনি সিদ্ধান্ত নিতে পারেন বাহুটির দিকটি কোন দিকে।
- যদি অস্ত্রের সংখ্যা 2 হয় তবে আপনি অস্ত্রটিকে উল্লম্ব বা অনুভূমিকভাবে বিন্দুতে সিদ্ধান্ত নিতে পারেন।
আপনি একটি সম্পূর্ণ প্রোগ্রাম লিখতে পারেন যা STDIN বা কমান্ড-লাইন আর্গুমেন্টের মাধ্যমে ইনপুট নেয় বা কোনও ফাংশন যা ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট নেয়। আপনার প্রোগ্রামকে আউটপুটগুলির ক্রম অবশ্যই দেখাতে হবে যা পিনহিল স্পিনিং দেখায়, প্রতিটি কমপক্ষে একটি খালি লাইন দ্বারা পৃথক। পিনউইলের কেন্দ্রটি একাধিক স্পেস দিয়ে সরানো উচিত নয়। আপনি প্রয়োজন হিসাবে অনেক নেতৃস্থানীয় এবং অনুসরণযোগ্য স্থান আউটপুট করতে পারেন।
এখানে কিছু উদাহরন:
0 2 1
_
|_|
/\
\/
1 3 2
|
|
|_
|_|
/
/
/
/\
\/
_ ___
|_|
2 2 0
_ __
__|_|
8 4 1
\ | /
\ | /
\ | /
\|_/____
____|_|
/ |\
/ | \
/ | \
/ | \
| /
\ | /
\ | /
\ |/
____\/\____
\/\
/| \
/ | \
/ | \
/ |
এটি কোড গল্ফ, তাই সংক্ষিপ্ততম কোড জয়ী। শুভকামনা!
1 3 5
এবং আর্মটি প্রাথমিকভাবে পয়েন্ট করা হয়) তবে এর জন্য উপযুক্ত স্থানগুলিকে পূর্ববর্তী আউটপুটগুলিতে চাপানো দরকার।