প্রোগ্রামার গার্ডেন
পেশাদার সফটওয়্যার বিকাশকারী হিসাবে আপনি নিজেকে সূর্যের কঠোর অ-কৃত্রিম আলোর কাছে প্রকাশের ঝুঁকি নিতে পারবেন না, তবে আপনার কাছে ফুলের জন্য একটি নরম জায়গা রয়েছে এবং আপনি সারা বছর আপনার বাগানটিকে ভাল আকারে রাখতে চান।
এই লক্ষ্যে, আপনার বাড়ির পাদদেশে ফুলের ফুলগুলি পরিষ্কার করার জন্য প্রতি মাসে একজন মালী ভাড়া করা হয়। তবে আপনাকে নিশ্চিত করতে হবে যে উদ্যান তার কাজটি সঠিকভাবে করছে এবং কঠোর পরিশ্রমী সহকর্মীর জন্য উপযুক্ত অর্থ প্রদানের কাজ করে। স্বাভাবিকভাবেই একটি সফ্টওয়্যার সমাধান সবচেয়ে ভাল।
ইনপুট
আপনার প্রোগ্রামটি বর্তমান হিসাবে প্রদর্শিত হবে হিসাবে ফ্লাওয়ারবেড বর্ণিত ইনপুট এবং আইটেমগুলি মুছে ফেলা দরকার তার বিবরণ দেওয়া হবে। প্রোগ্রামটি অবশ্যই বিশৃঙ্খলা বিহীন উদ্যানটিকে আউটপুট করতে হবে এবং উদ্যানপালকদের বেতন একটি বিচ্ছিন্নতা মুদ্রণ করবে। ইনপুটটি হয় STDIN থেকে হতে পারে, বা একক কমান্ড লাইন আর্গুমেন্ট হিসাবে।
ইনপুট প্রথম লাইন বিন্যাস হয়
width height unwanted_item_type_count
width
ফ্লাওয়ারবেডের প্রস্থটি কোথায় , ফ্লাওয়ারবেডের height
উচ্চতা (উভয়ই এএসসিআইআই অক্ষর), এবং unwanted_item_type_count
আপনাকে জানায় যে বাগান থেকে সরানোর জন্য এক ধরণের আইটেমের বিবরণ যুক্ত কতগুলি রেখাগুলি অনুসরণ করবে।
প্রতিটি অযাচিত ধরণের আইটেমের জন্য প্রতিটি লাইন বিন্যাসে
width height string_representation name fee_per_item
width
আইটেমটির প্রস্থ কোথায় , আইটেমের height
উচ্চতা (উভয় এএসসিআইআই অক্ষর), string_representation
লাইন ব্রেক ছাড়াই আইটেমটির স্ট্রিং প্রতিনিধিত্ব, আইটেমের name
ধরণের জন্য শনাক্তকরণ (স্পেসগুলি আন্ডারস্কোর দ্বারা প্রতিস্থাপন করা হবে), এবং fee_per_item
প্রতিটি ধরণের আইটেম অপসারণের জন্য মালীকে কত অর্থ প্রদান করতে হবে is
উদাহরণ স্বরূপ
3 2 .R.\|/ rouge_flower 3
নামের একটি আইটেম ধরণের প্রতিনিধিত্ব করে rouge_flower
, এটি অপসারণ করতে 3 টি ব্যয় হয় এবং এটি দেখতে দেখতে:
.R.
\|/
আইটেমগুলিতে স্পেস থাকবে না এবং কোনও আইটেমের মধ্যে বিন্দুগুলি সমেত কোনও সীমানা নাও থাকতে পারে এবং স্ট্রিংয়ের উপস্থাপনাটিও বর্ণিত সঠিক আকার হবে। এইভাবে, নীচের সমস্তগুলি অবৈধ ইনপুটগুলি:
3 1 ( ) space 0
1 1 . dot 0
2 1 .! bang 0
3 2 .@.\|/. plant 0
নোট করুন 0 তবে একটি বৈধ ফি (ফি সর্বদা পূর্ণসংখ্যার -1 এর চেয়ে বেশি হবে)।
আরও মনে রাখবেন যে ফ্লাওয়ারবেডটি মূলত .
স্পেসগুলির চেয়ে বিন্দুগুলি ( ) দ্বারা গঠিত এবং আপনি সমস্ত ইনপুটগুলির জন্য নিরাপদে সাদা স্থানটি সীমানা হিসাবে ব্যবহার করতে পারেন। ফুলফলটি সর্বদা বিন্দু দ্বারা আবদ্ধ।
অযাচিত আইটেমের ধরণের তালিকাভুক্ত হওয়ার পরে প্রদত্ত প্রস্থ এবং উচ্চতার ফ্লাওয়ারবেডের ASCII প্রতিনিধিত্ব আসে।
আউটপুট
আউটপুট STDOUT এ হওয়া উচিত, বা আপনার ভাষা যদি সমর্থন না করে তবে উপযুক্ত বিকল্প হতে হবে।
আউটপুটটি ফুলফ্রেডের একটি মুদ্রণ-আউট দিয়ে শুরু হয়, তবে সমস্ত অযাচিত আইটেমগুলি মুছে ফেলা (বিন্দুগুলির সাথে প্রতিস্থাপিত) দিয়ে, যাতে আপনি দেখতে পাবেন যে এটি কীভাবে প্রদর্শিত হবে এবং মালী তার কাজটি কী করেছে তা পরীক্ষা করে দেখুন। ফ্লাওয়ারবেডের প্রতিটি আইটেম বিন্দুগুলির একটি আয়তক্ষেত্র দ্বারা বেষ্টিত হবে এবং এটি একটি স্বতন্ত্র আইটেম হবে (অর্থাত্ আইটেমটির অভ্যন্তরে কোনও পৃথক বিন্দু থাকবে না )। উদাহরণ স্বরূপ
.....
.#.#.
.....
2 পৃথক আইটেম দেখায়
.....
.\@/.
.....
1 আইটেম দেখায়
......
.#....
....|.
....|.
.o--/.
......
অবৈধ, পাথরটি (#) মেলাতে পারার সময়, সাপটি (আপনি এটি একটি সাপ বলতে পারেননি?) পাথরটি বিন্দুগুলির আশেপাশে প্রয়োজনীয় চারপাশে হস্তক্ষেপ করে।
...
\@.
...
এটিও অবৈধ, কারণ শামুকটি ফ্লাওয়ারবেডের প্রান্তে রয়েছে এবং প্রান্তটি সর্বদা বৈধ ইনপুটটিতে বিন্দু দ্বারা আবদ্ধ হওয়া আবশ্যক।
এর পরে, বিন্যাসে প্রতিটি ধরণের অযাচিত আইটেমের একটি তালিকা থাকা উচিত, গণনা প্রদান করা উচিত, প্রতি আইটেমের ব্যয় এবং সমস্ত আইটেমের জন্য মূল্য (গণনা * প্রতি আইটেম প্রতি খরচ): ফর্ম্যাটটিতে:
<count> <name> at <cost_per_item> costs <cost>
এর পরে, মোট ব্যয় উপার্জনের একটি একক লাইন থাকা উচিত (অযাচিত আইটেমগুলির জন্য ব্যয়ের যোগফল):
total cost <total_cost>
উদাহরণ
এই প্রদত্ত ইনপুট জন্য
25 18 3
4 2 .\/.\\// weeds 5
2 1 \@ snails 2
1 1 # stones 1
.........................
.\@/.................\@..
............\/...........
......O....\\//..^|^.....
.#...\|/.........^|^.....
..................|......
.................\|/.....
..\@.....\/...........#..
........\\//....#........
....*....................
...\|/......\/......\@/..
...........\\//..........
..................*......
.......\@/.......\|/.....
...O.....................
..\|/.......*............
.......#...\|/....\@.....
.........................
প্রোগ্রামটি এই আউটপুট উত্পাদন করা উচিত
.........................
.\@/.....................
.........................
......O..........^|^.....
.....\|/.........^|^.....
..................|......
.................\|/.....
.........................
.........................
....*....................
...\|/..............\@/..
.........................
..................*......
.......\@/.......\|/.....
...O.....................
..\|/.......*............
...........\|/...........
.........................
3 weeds at 5 costs 15
3 snails at 2 costs 6
4 stones at 1 costs 4
total cost 25
আউটপুটটি অবশ্যই একটি লাইন-ব্রেক দ্বারা শেষ করা উচিত ।
এটি কোড-গল্ফ, সংক্ষিপ্ততম কোড জিততে পারে।
অতিরিক্ত পরীক্ষার মামলা
সম্পাদনা করুন: এটিতে ইউনিকোড রয়েছে, যা ফ্লাওয়ারবেডে অনুমোদিত নয়, অনেক বেশি আধুনিক। এটি সংশোধন করা হয়েছে, সে সম্পর্কে দুঃখিত।
25 15 5
5 3 ..@..\\|//.\|/. overgrown_plants 3
5 3 @-o....|...\|/. semi-articulated_plant 4
3 2 .|.\@/ mutant_plants 5
1 1 $ dollars 0
1 1 # stones 1
.........................
........@................
....$..\|/...........@...
............|.......\|/..
...#.......\@/...........
.........................
.........................
......@.......@......@...
.....\|/....\\|//...\|/..
.............\|/.........
.#....................#..
.........$.......|.......
...\/.......\/..\@/..\/..
..\\//.....\\//.....\\//.
.........................
প্রত্যাশিত আউটপুট:
.........................
........@................
.......\|/...........@...
....................\|/..
.........................
.........................
.........................
......@..............@...
.....\|/............\|/..
.........................
.........................
.........................
...\/.......\/.......\/..
..\\//.....\\//.....\\//.
.........................
1 overgrown_plants at 3 costs 3
0 semi-articulated_plants at 4 costs 0
2 mutant_plants at 5 costs 10
2 dollars at 0 costs 0
3 stones at 1 costs 3
total cost 16
\@
এবং @/
উদাহরণস্বরূপ .. বা তারা চিরকাল পশ্চিম দিকে নির্দেশ করতে বাধ্য?