একটি স্ট্রিং দেওয়া হয়েছে যেখানে প্রথম রেখায় ফাঁকা স্থান এবং একটি সময়কাল ( .
, "বল") রয়েছে, তারপরে ফাঁকা স্থান, ফরোয়ার্ড স্ল্যাশ ( /
) এবং ব্যাকস্ল্যাশস ( \
) যুক্ত রেখাগুলি নির্ধারণ করে, বলটি তার প্রারম্ভিক অবস্থান থেকে পড়ার পরে বলটি কোন কলামে প্রবেশ করবে । প্রতিটি /
এটি 1 টি কলাম দ্বারা বাম \
দিকে সরায় এবং প্রত্যেকে এটি 1 কলাম দ্বারা ডানদিকে নিয়ে যায়।
নমুনা ইনপুট
.
/ \ \
/ /
\ \/ \
\ /\
\ /\ \
\ /
নমুনা আউটপুট
বলটি 5 কলামে শুরু হয়, /
3 লাইনটি হিট হয় , তারপরে তিনটি \
চূড়ান্ত অবস্থানের জন্য 5 থেকে 7 লাইনগুলিতে:
7
নোট করুন যে কলামগুলি 1-সূচকযুক্ত, বেশিরভাগ পাঠ্য সম্পাদক কনভেনশনগুলির সাথে সঙ্গতিপূর্ণতার জন্য।
এজ মামলা
যদি বলটি /
প্রথম কলামে আঘাত করে, এটি চিরকালীন অস্তিত্বহীন কলামে আটকে আছে Your আপনার প্রোগ্রামটি মুদ্রণের মাধ্যমে এটি সঠিকভাবে পরিচালনা করা উচিত 0
।
যদি বলটি কোনও \/
প্যাটার্নের উভয় পাশে আঘাত করে , তবে ফলাফলটি অনির্ধারিত। আপনার প্রোগ্রামটি কোনও আউটপুট ছাড়াই অবসান করার অনুমতি দেওয়া হয়েছে, অসীমভাবে লুপ করবেন না, বা কোনও ত্রুটি বার্তা (আমার সমাধান প্রিন্টগুলি -1
) মুদ্রণ করবেন, তবে এটি বৈধ আউটপুট বলে মনে করা যেতে পারে এমন কোনও কিছুই মুদ্রণ করা উচিত নয়।
যদি বলটি কোনও \\
প্যাটার্নে বাম স্ল্যাশকে আঘাত করে তবে এটি ডান দিকে নয়, সরাসরি ডান স্ল্যাশের নীচে শেষ হওয়া উচিত। আমি যে সমাধানটি প্রাথমিকভাবে কল্পনা করেছি তা এই ভুল হওয়ার প্রবণতা ছিল, সুতরাং সেই পথে নামবেন না!
প্রতিটি বা .
শেষ লাইনের পরে বা পরে প্রতিটি লাইনে ফাঁকা জায়গা থাকতে পারে বা নাও থাকতে পারে । আপনার প্রোগ্রামটি যেমন প্যাডিং উপলব্ধ হচ্ছে তার উপর নির্ভর করা উচিত নয়। অনুরূপ নোটে, প্রথম লাইনের পরে কোনও লাইন থাকতে পারে এবং নাও থাকতে পারে।/
\
আপনি ধরে নিতে পারেন যে প্রথম লাইনে শূন্য বা আরও বেশি স্থান এবং ঠিক এক থাকবে .
। পরবর্তী লাইনগুলিতে শূন্য বা আরও বেশি স্পেস এবং শূন্য বা আরও বেশি স্ল্যাশ থাকবে।
বাস্তবায়ন বিশদ
আপনার প্রোগ্রামটি কোনও ফাইল থেকে পড়তে পারে (কমান্ড-লাইন আর্গুমেন্ট হিসাবে নির্দিষ্ট) বা আপনার সুবিধার্থে স্ট্যান্ডার্ড ইনপুট থেকে পড়তে পারে।
আপনার প্রোগ্রামটি অবশ্যই একক সংখ্যাকে স্ট্যান্ডার্ড আউটপুটে আউটপুট দেয়। (হ্যাঁ, একটি পেছনের নতুন লাইন ঠিক আছে Yes হ্যাঁ, সংখ্যার একাধিক সংখ্যা থাকতে পারে))
পরীক্ষার মামলা
ইনপুট:
.
আউটপুট:
1
মনে রাখবেন যে এখানে ইনপুটটি হ'ল এক বাইট। এটি হ্যান্ডেল করতে সক্ষম হওয়া উচিত এটি সবচেয়ে ছোট ক্ষেত্রে।
ইনপুট:
. \ \ \ \
আউটপুট:
6
মনে রাখবেন যে এই স্ল্যাশগুলির পরে কোনও স্থান নেই।
ইনপুট:
. / /\\ / \ //\ \/// // \\/ \/\ /\/
আউটপুট:
0
ইনপুট:
. / / / \\\ /\\ / \
আউটপুট:
1
ইনপুট:
. \ / / \
আউটপুট:
4
ইনপুট:
. \ \/\/\/
আউটপুট:
(anything but a nonnegative number)
মন্তব্য বন্ধ
এই প্রশ্নটি একটি (মহাকর্ষ-ভিত্তিক) বিলিয়ার্ড-বল-টাইপ কম্পিউটারের অনুকরণের মতো, তবে উল্লেখযোগ্যভাবে সহজ, সুতরাং আশা করি এটি আরও আগ্রহ অর্জন করবে।
পাইথনে আমার 169-চরিত্রের সমাধান রয়েছে। আমি নিশ্চিত যে এখানে প্রতিভাবান গল্ফাররা সেই রেকর্ডটি টুকরো টুকরো করে ফেলতে পারে। : ^)
এটি কোড-গল্ফ , তাই অক্ষরের মধ্যে সংক্ষিপ্ত উত্তরটি মাসের শেষে গৃহীত হবে!