অ্যালিস এমন একটি সংস্থার ইন্টার্ন যা ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড উভয় বিকাশের জন্য ব্রেইনফাককে প্রাথমিক ভাষা হিসাবে ব্যবহার করে। অ্যালিস সবেমাত্র তার প্রথম কোডটি লিখেছেন এবং তিনি তার প্রথম কোড পর্যালোচনার জন্য প্রস্তুত হওয়ায় তিনি কিছুটা নার্ভাস।
অ্যালিস তার কোডটি সঠিকভাবে ফর্ম্যাট করতে এবং দেখতে সুন্দর দেখতে চায় তবে 328 পৃষ্ঠাগুলির সংস্থার কোড স্টাইল গাইডটি পড়ার জন্য তার কোনও সময় নেই, তাই তিনি এটিকে নিখুঁত স্কোয়ার হিসাবে ফর্ম্যাট করার সিদ্ধান্ত নিয়েছিলেন । হায়, কোড দৈর্ঘ্য বর্গাকার গঠনের জন্য অপর্যাপ্ত হতে পারে, তাই তিনি মাঝখানে একটি আয়তক্ষেত্রাকার ফাঁক রেখে যাওয়ার সিদ্ধান্ত নিয়েছিলেন । গ্যাপগুলি অবশ্যই নিখুঁতভাবে কেন্দ্রীভূত হওয়া উচিত এবং যতটা সম্ভব স্কোয়ারের কাছাকাছি থাকতে হবে ।
উদাহরণ
++++++ +++++ +++++ +++++ +++++ +++++
++++++ +++++ +++++ + ++ ++ ++ +++++
++++++ ++ ++ + + + ++ + +
++++++ +++++ +++++ +++++ ++ ++ +++++
++++++ +++++ +++++ +++++ +++++ +++++
Perfect OK Acceptable Unacceptable No way! Nope.
অ্যালিসকে সহায়তা করার জন্য একটি প্রোগ্রাম বা একটি ফাংশন লিখুন। এলিসের কোডটিকে একটি ইনপুট স্ট্রিং হিসাবে দেওয়া হয়েছে, সম্ভব হলে নীচে বর্ণিত সঠিকভাবে ফর্ম্যাট কোড আউটপুট। যদি ফর্ম্যাট করা অসম্ভব হয় তবে আউটপুট কান্নার ইমোজি :~(
।
এটি কোড-গল্ফ তাই উত্তরগুলি বাইটে কম বাইটের সাথে লক্ষ্য হয়।
সীমাবদ্ধতাসমূহ
- আপনার প্রোগ্রাম বা ফাংশনটিতে একটি ইনপুট হিসাবে একক স্ট্রিং নেওয়া উচিত এবং এক বা একাধিক পাঠ্য পাঠ্য আউটপুট আউট করা (বা যদি আপনি কোনও ফাংশন বাস্তবায়ন করেন তবে মাল্টি-লাইন স্ট্রিং বা স্ট্রিংগুলির অ্যারে ফিরিয়ে দিন)।
- ইনপুট স্ট্রিংয়ে হোয়াইট স্পেসগুলি সহ যে কোনও ASCII অক্ষর থাকতে পারে।
- ইনপুটটিতে থাকা সমস্ত শ্বেতস্থান অবশ্যই অগ্রাহ্য করা উচিত। কোডের দৈর্ঘ্যের জন্য তাদের গণনা করা উচিত নয় এবং এগুলিকে আউটপুট ব্যবহার করা উচিত নয়।
- ইনপুট স্ট্রিংয়ে কমপক্ষে একটি অ-হোয়াইটস্পেস অক্ষর থাকে।
- ফর্ম্যাট কোডটিতে ইনপুট কোডের মতো একই ক্রমযুক্ত অ-শ্বেতস্পেস অক্ষর থাকতে হবে।
- ফর্ম্যাট কোডটি অবশ্যই একটি নিখুঁত বর্গক্ষেত্র হতে হবে, যেমন সমস্ত লাইনের দৈর্ঘ্য একই হতে হবে এবং রেখার সংখ্যা লাইন দৈর্ঘ্যের সমান হতে হবে।
- ফর্ম্যাট কোডটি মাঝখানে ফাঁক থাকতে পারে।
- ফাঁকা জায়গায় কেবল স্থান অক্ষর (ASCII কোড 32) ব্যবহার করা যেতে পারে।
- গ্যাপ (উপস্থিত থাকলে) অবশ্যই আয়তক্ষেত্রাকার হতে হবে।
- বিন্যাসিত কোডের প্রতিটি লাইনে অবশ্যই কমপক্ষে একটি অ-শ্বেতস্পেস অক্ষর থাকা আবশ্যক, অর্থাৎ ফাঁক প্রস্থ অবশ্যই বর্গাকার প্রস্থের চেয়ে কড়াভাবে কম হওয়া উচিত (ফাঁক 5x1 5x5 বর্গের জন্য অগ্রহণযোগ্য)।
- গ্যাপটি অনুভূমিক হওয়া উচিত, অর্থাৎ ফাঁকের প্রস্থটি ফাঁকের উচ্চতার চেয়ে বড় বা সমান হতে হবে।
- গ্যাপটি অবশ্যই পুরোপুরি কেন্দ্রিক হতে হবে।
- ফলস্বরূপ ফাঁক প্রস্থ এবং উচ্চতা সমতা স্কোয়ার প্রস্থের সমতা হিসাবে সমান হওয়া উচিত (উদাহরণস্বরূপ 5x5 বর্গ ব্যবধানটি 1x1, 3x1 বা 3x3 হতে পারে)।
- সম্ভব হলে, কোনও ফাঁক ছাড়াই আউটপুট স্কোয়ার।
- একাধিক সমাধানের ক্ষেত্রে, বর্গের নিকটতম ব্যবধানের সাথে একটি চয়ন করুন, যেমন ফাঁক প্রস্থ এবং ফাঁকের উচ্চতার মধ্যে পার্থক্য ন্যূনতম (উদাহরণস্বরূপ: ফাঁক 10x10 8x6 এর চেয়ে বেশি ভাল, এবং 8x6 6x2 এর চেয়ে বেশি পছন্দনীয়)।
- যদি এখনও কোনও টাই থাকে তবে ন্যূনতম ব্যবধান অঞ্চল সহ সমাধানটি চয়ন করুন (উদাহরণস্বরূপ ফাঁক 2x2 4x4 এর চেয়ে বেশি পছন্দনীয়)।
- কোডটি বিন্যাস করা মোটেও অসম্ভব হলে আউটপুট
:~(
। - শেষ লাইনের পরে নিউলাইন optionচ্ছিক।
- [নতুন] আপনি নিরাপদে ধরে নিতে পারেন যে 33 এর নীচের কোড সহ যে কোনও অক্ষর একটি সাদা স্থান। আমি আশা করি এটি আপনাকে গল্ফ করার জন্য সহায়তা করবে।
টেস্ট
Input Output Code length Comment
+++++++++ +++ 9 Alice is lucky,
+++ her code perfectly fits a square.
+++
++++++++ +++ 8 Though code length isn't enough for a square,
+ + a small gap fixes it.
+++
++++++ :~( 6 No luck, code cannot be formatted.
Hello, Hell 12 Input may contain any ASCII characters,
World! o , but whitespaces in input should be ignored.
W o
rld!
+++++ + +++++ +++++ 22 Gap is not required to be a square,
+++++ + +++++ +++++ it can be a rectangle.
+ +
+++++
+++++
+++ + +++ ++++++++ 28 There exists another solution:
+++ + +++ + + 6x6 square with 4x2 gap,
+++ + +++ + + but in Alice's opinion square gap
+++ + +++ + + makes code more readable.
+ +
+ +
+ +
++++++++
কৃপণ পরীক্ষা
This must be Thism 24 7x7 with 5x5 gap looks good,
5x5 with 1x1 ustbe but 5x5 with 1x1 gap is better,
gap. 5x 5w because gap area is smaller.
ith1x
1gap.
+++ +++ +++ :~( 18 In case you tried 5x5 square
+++ +++ +++ with 7x1 gap ;)
সম্পদ
স্থান বাঁচাতে আপনি নমুনা কোড এবং টিওআরুনে অতিরিক্ত পরীক্ষার কেসগুলি খুঁজে পেতে পারেন
[নতুন] আপনি 100 টি অক্ষর পর্যন্ত ইনপুটগুলির জন্য গৃহীত সমাধানগুলির সারণিতে একবার দেখে নিতে পারেন । আমি প্রস্থ এবং উচ্চতা অদলবদল করলাম কারণ এটি আরও স্বজ্ঞাত বলে মনে হচ্ছে।
দ্বারা অনুপ্রাণিত: পাঠ্যের একটি বর্গক্ষেত্র
পরিবর্তনগুলি
নমুনা কোডে 2 টি পরীক্ষা, স্থির বাগ যুক্ত করা হয়েছে।
100 টি পর্যন্ত সমাধানের সারণী যুক্ত করা হয়েছে, সাদা-স্পেসের স্পেসিফিকেশন যুক্ত করা হয়েছে।