আপনি একটি এভিনিউতে খুঁজছেন, এবং কেউ আবর্জনা ফেলে রেখেছেন! ট্র্যাশ ট্র্যাশে ট্র্যাশগুলিতে ফেলে সমস্যাটি সমাধানের জন্য আপনাকে একটি প্রোগ্রাম লিখতে হবে।
কাজটি
অ্যাভিনিউটি মুদ্রণযোগ্য ASCII অক্ষরের একটি স্ট্রিং দিয়ে তৈরি, যেমন:
[[](dust)[]] car ((paper)vomit) (broken(glass)) [[] (rotten) fence (dirty)
এখানে কিছু বন্ধনী মিলছে না; সেগুলি কেবল ডিকয়েস। আমরা যা যত্ন করি তা হ'ল বন্ধনীগুলির মেলা সেট।
একটি ট্র্যাশ করতে পারেন একটি স্ট্রিং দিয়ে শুরু হয় [
এবং দিয়ে শেষ ]
, এবং অভ্যন্তরীণভাবে মিলেছে বন্ধনী এবং বন্ধনী দিয়ে। উদাহরণস্বরূপ, []
এবং [[](dust)[]]
উপরের স্ট্রিংয়ের মধ্যে ট্র্যাশ ক্যান।
একটি ট্র্যাশ ব্যাগ এমন একটি স্ট্রিং যা শুরু হয় (
এবং শেষ হয় )
এবং অভ্যন্তরীণভাবে ম্যাচ করা বন্ধনী এবং বন্ধনীর সাথে থাকে। উদাহরণস্বরূপ, (dust)
উপরের স্ট্রিংয়ের একটি ট্র্যাশ ব্যাগ।
এটি সম্ভব যে কয়েকটি ট্র্যাস ব্যাগ ইতিমধ্যে ট্র্যাশ ক্যানগুলিতে রয়েছে। তবে, কমপক্ষে একটি বাদ পড়ে যাবে এবং আমাদের ট্র্যাশ ব্যাগগুলি সরিয়ে নেওয়া দরকার যাতে সেগুলি সমস্ত আবর্জনার ক্যানের ভিতরে থাকে। বিশেষত, প্রতিটি ট্র্যাস ব্যাগের জন্য যা বর্তমানে ট্র্যাশ ক্যানের অভ্যন্তরে নেই (যেমন সেই ট্র্যাশের ক্যানের একটি স্ট্রিং), আমাদের এটি স্ট্রিংয়ের বর্তমান অবস্থান থেকে সরিয়ে ফেলতে হবে এবং এর পরিবর্তে এটি কোনও আবর্জনার অভ্যন্তরে প্রবেশ করতে হবে to ।
এখানে একটি অতিরিক্ত নিয়ম আছে। যেহেতু আমরা আবর্জনা সংগ্রহকারীদের জন্য খুব বেশি অর্থ ব্যয় করতে চাই না এবং তাদের রুটগুলি এভিনিউটি ধরে ডান থেকে বামে নিয়ে যায়, আমরা প্রতিটি ট্র্যাশ ব্যাগকে বাম দিকে সরিয়ে নিতে চাই (অতি গুরুত্বপূর্ণ মাপদণ্ড, ধরে নিই যে আমাদের এটি স্থানান্তরিত করতে হবে) সমস্ত) এবং স্বল্পতম দূরত্ব সম্ভব (যতক্ষণ না এটি বাম দিকে সরানো হয়)। সুতরাং উদাহরণস্বরূপ, শুধুমাত্র সঠিক আউটপুট
[can1](bag)[can2]
হয়
[can1(bag)][can2]
(ব্যাগটি কেবল একটি অক্ষরকে বাম দিকে সরানো)। অতিরিক্তভাবে, ব্যাগগুলি একই আপেক্ষিক ক্রমে থাকা দরকার:
[can](bag1)(bag2)
হতে হবে
[can(bag1)(bag2)]
(যেমন আপনি (bag2)
বাম দিকে রাখতে পারবেন না (bag1)
))
ব্যাখ্যা
- বাম দিকের ট্র্যাশ ক্যানের বামে কোনও ট্র্যাস ব্যাগ থাকবে না; বাম দিকে সরানোর মাধ্যমে সমস্ত ট্র্যাসটি করা সর্বদা সম্ভব হবে।
- সর্বদা সরানোর জন্য কমপক্ষে একটি ব্যাগ থাকবে। একের বেশি থাকতে পারে।
- কোনও আবর্জনা ব্যাগের ভিতরে কোনও আবর্জনা ক্যান থাকতে পারে না (ক্যানগুলি কেবল ফেলে দেওয়ার জন্য খুব মূল্যবান)।
- যদি একটি ব্যাগ ইতিমধ্যে একটি ক্যানের ভিতরে থাকে তবে কেবল এটি একা রেখে যান।
- ইনপুট এবং আউটপুটটির পিছনে হোয়াইটস্পেসের (নিউলাইনগুলি সহ) পৃথক হওয়া ঠিক।
উদাহরণ:
ইনপুট:
[[](dust)[]] car ((paper)vomit) (broken(glass)) [[] (rotten) fence (dirty)
আউটপুট:
[[](dust)[]((paper)vomit)(broken(glass))] car [[(rotten)(dirty)] fence
ইনপুট:
[]] (unusable) door (filthy) car
আউটপুট:
[(unusable)(filthy)]] door car