এই টাস্কটি প্রথম পর্যায়ক্রমিক প্রিমিয়ার প্রোগ্রামিং ধাঁধা পুশের অংশ ।
আপনি নিম্নলিখিত বিন্যাসে আইটেমের শ্রেণিবিন্যাস পাবেন:
2
Hat
1
Gloves
যা বাক্সে রাখা প্রয়োজন, যেমন:
.------------.
| Hat |
| .--------. |
| | Gloves | |
| '--------' |
'------------'
ইনপুট বিন্যাসে সংখ্যাগুলি নির্দিষ্ট করে যতগুলি আইটেম সহ একটি বাক্স শুরু করে। প্রথম বাক্সে দুটি আইটেম রয়েছে (টুপি এবং বাক্স যা গ্লোভস ধারণ করে), দ্বিতীয়টিতে কেবল একটি আইটেম থাকে - গ্লোভস।
যেমন দেখা যায়, বাক্সগুলি বাক্সগুলির অভ্যন্তরেও বাস করতে পারে। এবং এগুলি সর্বদা বৃত্তাকার ... সাজানো (মূল কোণগুলি ক্ষতের ঝুঁকি এবং আমরা তা চাই না)।
নীচে স্পেসিফিকেশন যা দেয় প্রতিটি ক্ষুদ্র বিট ব্যবহার করতে চান তাদের জন্য বাজে বিবরণ আছে। মনে মনে, স্পেক না পড়া ভুল সমাধান জমা দেওয়ার কোনও অজুহাত নয়। একেবারে শেষে একটি পরীক্ষা স্ক্রিপ্ট এবং কয়েকটি পরীক্ষার মামলা রয়েছে।
সবিস্তার বিবরণী
বাক্সগুলি নিম্নলিখিত অক্ষরগুলি থেকে তৈরি করা হয়:
|
(U + 007C) উল্লম্ব প্রান্তগুলি তৈরি করতে ব্যবহৃত হয়।-
(U + 002D) অনুভূমিক প্রান্তগুলি তৈরি করতে ব্যবহৃত হয়।'
(U + 0027) হল নীচের কোণায় lower.
(U + 002E) হল গোলাকার উপরের কোণগুলি।
একটি বাক্স তাই দেখায়:
.--. | | '--'
মনে রাখবেন যে ইউনিকোডে গোলাকার কোণ এবং সঠিক বক্স-অঙ্কন অক্ষর রয়েছে তবে এই কাজটি কেবলমাত্র ASCII এ। আমি ইউনিকোডকে যতটা ভালবাসি আমি বুঝতে পারি যে এখানে ভাষা এবং পরিবেশ রয়েছে যা দ্বিতীয় থেকে শেষ দশকে আসে নি।
বাক্সগুলিতে পাঠ্য বা অন্যান্য আইটেমগুলির আইটেমগুলির ক্রম থাকতে পারে। একটি বাক্সে পৃথক আইটেম শীর্ষ থেকে নীচে রেন্ডার করা হয়। ক্রম A, B, C এভাবে নীচে রেন্ডার করে:
.---. | A | | B | | C | '---'
এটি অবশ্যই নেস্টেড বাক্সগুলিতেও প্রযোজ্য, যা কেবল পাঠ্যের মতো একটি আইটেম। সুতরাং ক্রম এ, বি, বক্স (সি, বক্স (ডি, ই)), এফ নীচে রেন্ডার করবে:
.-----------. | A | | B | | .-------. | | | C | | | | .---. | | | | | D | | | | | | E | | | | | '---' | | | '-------' | | F | '-----------'
বাক্সগুলি সামগ্রীতে তাদের আকার সামঞ্জস্য করে এবং নেস্টেড বাক্সগুলি সর্বদা তাদের পিতামাতার আকারে প্রসারিত করে। সামগ্রীর আগে এবং পরে সর্বদা একটি স্থান থাকে, যাতে পাঠ্য বা নেস্টেড বাক্সগুলি বাইরের বাক্সের প্রান্তের খুব কাছে না থাকে। সংক্ষেপে, নিম্নলিখিতটি ভুল:
.---. |Box| '---'
এবং নিম্নলিখিতটি সঠিক:
.-----. | Box | '-----'
দেখতে অনেক সুন্দর লাগছে :-)
পাঠ্য আইটেমগুলি ( নীচে ইনপুট দেখুন) ঠিক পুনরুত্পাদন করতে হবে।
সর্বদা একক শীর্ষ স্তরের বাক্স থাকে (সিএফ। এক্সএমএল)। তবে, একটি বাক্সে আরও বেশ কয়েকটি বাক্স থাকতে পারে।
ইনপুট
ইনপুট মান ইনপুট দেওয়া হয়; সহজেই পরীক্ষার জন্য কোনও ফাইল থেকে পুনঃনির্দেশিত।
ইনপুটটি লাইন-ভিত্তিতে দেওয়া হয়, প্রতিটি লাইনটি বর্তমান বাক্সে রাখার জন্য কোনও পাঠ্য আইটেমকে প্রতিনিধিত্ব করে বা একটি নতুন বাক্স খোলায় with
প্রতিটি লাইন একটি লাইন ব্রেক দ্বারা শেষ হয়।
পাঠ্য আইটেমগুলিতে একটি লাইন দ্বারা চিহ্নিত করা হয় যা কোনও সংখ্যার সমন্বিত থাকে না (নীচে দেখুন)। পাঠ্যে বর্ণানুক্রমিক অক্ষর, স্থান এবং বিরামচিহ্ন (
.,-'"?!()
) ব্যবহার করা হয়। পাঠ্য কোনও স্পেস দিয়ে শুরু বা শেষ হবে না এবং এতে সর্বদা কমপক্ষে একটি অক্ষর থাকবে।একটি বাক্সে এটির একটি সংখ্যা দিয়ে একটি একক লাইন দিয়ে শুরু হয়। নম্বরটি বাক্সের আকারকে বোঝায়, অর্থাৎ এটিতে নিচের আইটেমগুলির সংখ্যা:
2 A B
দুটি পাঠ্য আইটেম সহ একটি বাক্স উত্পাদন করে:
.---. | A | | B | '---'
একটি বাক্সে সর্বদা কমপক্ষে একটি আইটেম থাকবে।
বাক্সগুলির শেষটি স্পষ্টভাবে একটি লাইনের সাথে চিহ্নিত করা যায় না; পরিবর্তে বাক্সগুলি স্পষ্টরূপে আইটেমগুলির নির্দিষ্ট সংখ্যা putোকানোর পরে বন্ধ করা হয়।
এতে যত আইটেমই থাকুক না কেন একটি বাক্স সর্বদা কেবল একটি আইটেম is যেমন
3 A 4 a b c d B
তিনটি আইটেম সহ একটি বাক্স আসবে, যার মধ্যে দ্বিতীয়টি চারটি আইটেম সহ অন্য একটি বাক্স।
বাসা বাঁধাই এই সত্যকে প্রভাবিত করে না যে বাক্সটি কেবল একটি আইটেম।
সীমা
সর্বাধিক পাখির স্তর পাঁচটি । অর্থাৎ একে অপরের অভ্যন্তরে সর্বাধিক পাঁচটি বাক্স রয়েছে। এর মধ্যে বাইরেরতম অন্তর্ভুক্ত রয়েছে।
প্রতি বাক্সে সর্বোচ্চ দশটি আইটেম রয়েছে।
পাঠ্য আইটেমগুলির সর্বাধিক 100 অক্ষর রয়েছে।
আউটপুট
- আউটপুট হ'ল উপরে বর্ণিত নিয়ম অনুসারে সমস্ত ধারণ এবং নেস্টেড আইটেম সহ রেন্ডার বাক্স।
- আউটপুট স্ট্যান্ডার্ড আউটপুট দেওয়া উচিত এবং এটি ঠিক মেলে। কোনও নেতৃস্থানীয় বা অনুসরণকারী শ্বেত স্পেস অনুমোদিত নয়।
- প্রতিটি লাইন একটি লাইন বিরতি দিয়ে শেষ সহ, সমাপ্ত করতে হবে।
জয়ের শর্ত
- সংক্ষিপ্ততম কোড জয় (যেমন স্বীকৃত উত্তর পায়)।
নমুনা ইনপুট 1
3
This is some text!
Oh, more text?
Just text for now, as this is a trivial example.
নমুনা আউটপুট 1
.--------------------------------------------------.
| This is some text! |
| Oh, more text? |
| Just text for now, as this is a trivial example. |
'--------------------------------------------------'
নমুনা ইনপুট 2
4
Extreme
nesting
3
of
boxes
4
might
lead
to
2
interesting
1
visuals.
Indeed!
নমুনা আউটপুট 2
.--------------------------.
| Extreme |
| nesting |
| .----------------------. |
| | of | |
| | boxes | |
| | .------------------. | |
| | | might | | |
| | | lead | | |
| | | to | | |
| | | .--------------. | | |
| | | | interesting | | | |
| | | | .----------. | | | |
| | | | | visuals. | | | | |
| | | | '----------' | | | |
| | | '--------------' | | |
| | '------------------' | |
| '----------------------' |
| Indeed! |
'--------------------------'
নমুনা ইনপুট 3
1
1
1
1
1
Extreme nesting Part Two
নমুনা আউটপুট 3
.------------------------------------------.
| .--------------------------------------. |
| | .----------------------------------. | |
| | | .------------------------------. | | |
| | | | .--------------------------. | | | |
| | | | | Extreme nesting Part Two | | | | |
| | | | '--------------------------' | | | |
| | | '------------------------------' | | |
| | '----------------------------------' | |
| '--------------------------------------' |
'------------------------------------------'
নমুনা ইনপুট 4
3
Foo
2
Bar
Baz
2
Gak
1
Another foo?
নমুনা আউটপুট 4
.----------------------.
| Foo |
| .------------------. |
| | Bar | |
| | Baz | |
| '------------------' |
| .------------------. |
| | Gak | |
| | .--------------. | |
| | | Another foo? | | |
| | '--------------' | |
| '------------------' |
'----------------------'
পরীক্ষা স্ক্রিপ্ট
যেহেতু সঠিকভাবে বিশদ পাওয়া আমাদের সময়ে কঠিন হতে পারে আমরা ( ভেন্টোরো এবং আমি) একটি পরীক্ষা স্ক্রিপ্ট প্রস্তুত করেছি আপনি এটি সঠিক কিনা তা পরীক্ষা করে আপনার সমাধানটি চালাতে পারেন। এটি পাওয়ারশেল স্ক্রিপ্ট এবং ব্যাশ স্ক্রিপ্ট উভয়ই হিসাবে উপলব্ধ । আবাহন হল: <test-script> <program invocation>
।
আপডেট: পরীক্ষার স্ক্রিপ্টগুলি আপডেট করা হয়েছে; এমন অনেকগুলি পরীক্ষার কেস ছিল যা আমি নির্ধারিত সীমাগুলিকে সম্মান করি নি। পাওয়ারশেল পরীক্ষা স্ক্রিপ্ট ফলাফল পরীক্ষার জন্য কেস-সংবেদনশীল তুলনা ব্যবহার করে না। আমি আশা করি সব ঠিক আছে এখন। পরীক্ষার মামলার সংখ্যা হ্রাস পেয়ে 156 করা হয়েছে, যদিও শেষেরটি এখন বেশ বড় ...
আপডেট 2: আমি আমার পরীক্ষার কেস জেনারেটর আপলোড করেছি । নেট # রানটাইমকে লক্ষ্য করে সি # তে লিখিত । এটি মনোর উপর চলে। এটি লোকদের তাদের বাস্তবায়ন পরীক্ষা করতে সহায়তা করতে পারে। আপনি যে কাজটি সীমাবদ্ধ করতে পারেন তার সীমাবদ্ধতার হিসাবে একটি চূড়ান্ত খারাপ পরিস্থিতি হিসাবে:
nb.exe 1 10 10 5 100 100 | my invocation
যা কেবলমাত্র আন্তঃতম স্তর পর্যন্ত বাক্স তৈরি করবে এবং প্রতি বাক্সে আইটেমের সর্বাধিক সংখ্যা এবং পাঠ্য আইটেমের সর্বাধিক দৈর্ঘ্য উভয়ই ব্যবহার করবে। যদিও আমি এটি পরীক্ষার কেসটিকে টেস্ট স্ক্রিপ্টে অন্তর্ভুক্ত করি না, যদিও এটি বেশ বড় এবং আউটপুট আরও বড়।
আপডেট 3: আমি পাওয়ারশেল পরীক্ষা স্ক্রিপ্ট আপডেট করেছি যা স্ক্রিপ্টে লাইন শেষ কী ছিল এবং সমাধানটি কী প্রান্তে প্রিন্ট করে তা নির্ভর করে ত্রুটি ছুঁড়ে দেওয়ার প্রবণতা ছিল। এখন এটি উভয়েরই অজ্ঞেয় হওয়া উচিত। আবার বিভ্রান্তির জন্য দুঃখিত।