বিবরণ
কালিমা প্রোগ্রামিং ল্যাঙ্গুয়েজ (আইপিএল) পোলিশ রিভার্স নোটেশন ব্যবহার করে। এটিতে নিম্নলিখিত আদেশগুলি রয়েছে:
- আমি - ইনপুট নম্বর এবং এটি স্ট্যাকে ধাক্কা
- ও - স্ট্যাকের অ-ধ্বংসাত্মক আউটপুট শীর্ষ (সংখ্যা স্ট্যাকের উপরে থাকে)
- d - স্ট্যাকের উপরে ফেলে দিন
- পূর্ণসংখ্যা নম্বর - এই সংখ্যাটি স্ট্যাকের দিকে ধাক্কা
- + - * - স্ট্যাক থেকে দুটি নম্বর পপ করুন, একই ক্রিয়াকলাপ সম্পাদন করুন এবং ফলাফলটি পিছনে চাপ দিন। আইপিএলে কোনও বিভাগ নেই।
আইপিএল কেবল পূর্ণসংখ্যার সাথে কাজ করে এবং সাধারণ গণনার জন্য ব্যবহৃত হয়। একটি আইপিএল প্রোগ্রাম এক লাইনে লেখা হয় এবং ফাঁক দিয়ে পৃথক করা হয়। খালি স্ট্রিং একটি বৈধ আইপিএল প্রোগ্রাম।
আইপিএল প্রোগ্রাম:
i i + o
দুটি সংখ্যার ইনপুট দেয়, তাদের একসাথে যুক্ত করে ফলাফল আউটপুট করে।
ইনপুট নম্বর এবং পূর্ণসংখ্যা যা স্ট্যাকের দিকে ধাক্কা দেওয়া যায় সেগুলি [-999, 999] এর মধ্যে রয়েছে তবে আউটপুট যেকোনও হতে পারে। আপনার ভাষা যদি বড় সংখ্যা সমর্থন করে না তবে এটি ঠিক আছে।
ইনপুট / আউটপুট ফর্ম্যাট
আপনি যেকোন ইনপুট / আউটপুট ফর্ম্যাট চয়ন করতে পারেন যতক্ষণ না এটি বুঝতে / পড়ার / স্ট্রিং, তালিকা, টোকেন ইত্যাদির জন্য পরিষ্কার হয় clear
কার্য
আপনাকে কিছু আইপিএল প্রোগ্রাম দেওয়া আছে, আপনার এটি অপ্টিমাইজ করতে হবে (দৈর্ঘ্য হ্রাস):
i 12 + 3 + o d 2 3 + d
অপ্টিমাইজেশনের পরে হয়ে যাবে
i 15 + o
আপনাকে স্ট্যাকের অবস্থা সংরক্ষণ করতে হবে না, তবে মূল এবং অনুকূলিত কর্মসূচির জন্য ইনপুট এবং আউটপুটগুলির পরিমাণ এবং তাদের ক্রমটি মিলবে।
তাই আইপিএল প্রোগ্রাম:
-40 i * 2 * o i + 3 1 + o i 2 *
অপ্টিমাইজেশনের পরে হয়ে যাবে
i -80 * o i 4 o i
অথবা
-80 i * o i 4 o i
(মনে রাখবেন যে আপনাকে সমস্ত ইনপুটগুলি অপ্রাসঙ্গিক হলেও সংরক্ষণ করতে হবে)।
পরীক্ষার মামলার জন্য কোনও হার্ডকোডিং হওয়া উচিত নয়, কোডটি যেকোন স্বেচ্ছাসেবী আইপিএল প্রোগ্রামে কাজ করা উচিত এবং প্রয়োজনীয়তা পূরণের জন্য সংক্ষিপ্ততম সম্ভব আইপিএল প্রোগ্রাম তৈরি করা উচিত।
স্কোরিং
ডিফল্ট কোড-গল্ফ স্কোরিং।
আপডেট: @ স্যাঙ্কাইজিসের পরামর্শ অনুসারে খাঁটি কোড গল্ফ স্কোরিংয়ে স্কোরিং পরিবর্তন হয়েছে।
পরীক্ষার কেস:
ইনপুট:
(empty string)
সম্ভাব্য আউটপুট:
(empty string)
ইনপুট:
i 4 * 2 + 3 * 6 - o
সম্ভাব্য আউটপুট:
i 12 * o
ইনপুট:
1 1 + o
সম্ভাব্য আউটপুট:
2 o
ইনপুট:
i 2 + 3 + o d 2 3 + d
সম্ভাব্য আউটপুট:
i 5 + o
ইনপুট:
-40 i * 2 * o i + 3 1 + o i 2 *
সম্ভাব্য আউটপুট:
-80 i * o i 4 o i
ইনপুট:
i i 1 + i 1 + i 1 + i 1 + d d d d o
সম্ভাব্য আউটপুট:
i i i i i d d d d o
ইনপুট:
i i i 0 * * * o
সম্ভাব্য আউটপুট:
i i i 0 o
ইনপুট:
i i i 1 * * * o
সম্ভাব্য আউটপুট:
i i i * * o
ইনপুট:
i 222 + i 222 - + o
সম্ভাব্য আউটপুট:
i i + o
ইনপুট:
i 2 + 3 * 2 + 3 * 2 + 3 * i * d i 2 + 3 * i + d i o 2 + 2 - 0 * 1 o
সম্ভাব্য আউটপুট:
i i i i i o 1 o
ইনপুট:
i 1 + 2 * 1 + o
সম্ভাব্য আউটপুট:
i 2 * 3 + o
ইনপুট:
1 1 + o i 2 + 3 + o d 2 3 + d 4 i * 2 * o i + 3 1 + o i 2 * i i 1 + i 1 + i 1 + i 1 + d d d d o i i i 0 * * * o i i i 1 * * * o i 2 + i 2 - + o i 2 + 3 * 2 + 3 * 2 + 3 * i * d i 2 + 3 * i + d i o 2 + 2 - 0 * 1 o
সম্ভাব্য আউটপুট:
2 o i 5 + o 8 i * o i 4 o i i i i i i d d d d o i i i 0 o i i i * * * o i i + o i i i i i o 1 o
i i d o
করতে পারবেনi o i
(ইনপুটটি ক্রমানুসারে এবং আউটপুটটি সাজানো আছে) বা আপনার এটিকে সরল করা উচিত নয়? (ইনপুট এবং আউটপুটগুলির সেটটি