प्रोग्रामर गार्डन
एक पेशेवर सॉफ्टवेयर डेवलपर होने के नाते, आप अपने आप को सूरज की कठोर गैर-कृत्रिम रोशनी के संपर्क में लाने का जोखिम नहीं उठा सकते हैं, लेकिन आपके पास फूलों के लिए एक नरम स्थान भी है, और अपने बगीचे को पूरे वर्ष अच्छे आकार में रखना चाहते हैं।
यह अंत करने के लिए, एक माली हर महीने काम पर रखा जाता है ताकि आपके घर के पैर पर फूल आ जाए। हालांकि आपको यह सुनिश्चित करने की आवश्यकता है कि माली अपना काम ठीक से कर रहा है, और कड़ी मेहनत करने वाले साथी के लिए उपयुक्त भुगतान करें। स्वाभाविक रूप से एक सॉफ्टवेयर समाधान सबसे अच्छा है।
इनपुट
आपके प्रोग्राम को फ़ूलबेड का वर्णन करते हुए इनपुट दिया जाएगा क्योंकि यह वर्तमान में दिखाई देता है, और उन वस्तुओं का विवरण जिन्हें हटाने की आवश्यकता है। कार्यक्रम को अव्यवस्था से रहित बगीचे का उत्पादन करना चाहिए, और बागवानों के भुगतान का टूटना प्रिंट करना चाहिए। इनपुट या तो STDIN से हो सकता है, या एकल कमांड लाइन तर्क के रूप में हो सकता है।
इनपुट की पहली पंक्ति प्रारूप की है
width height unwanted_item_type_count
जहां widthफूल की चौड़ाई है, फूल heightकी ऊंचाई (एएससीआईआई अक्षर दोनों में) है, और unwanted_item_type_countआपको बताता है कि बगीचे से निकाले जाने वाले एक प्रकार के आइटम का वर्णन करने के लिए कितनी लाइनें होंगी।
प्रत्येक अवांछित प्रकार के आइटम के लिए प्रत्येक पंक्ति प्रारूप की है
width height string_representation name fee_per_item
widthआइटम की चौड़ाई कहां है, आइटम heightकी ऊंचाई है (दोनों ASCII वर्णों में), string_representationपंक्ति विराम के बिना आइटम का स्ट्रिंग प्रतिनिधित्व है, आइटम nameके प्रकार के लिए एक पहचानकर्ता है (रिक्त स्थान को अंडरस्कोर के साथ बदल दिया जाएगा), औरfee_per_item यह है कि प्रत्येक प्रकार के आइटम को हटाने के लिए माली को कितना भुगतान किया जाना चाहिए।
उदाहरण के लिए
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
\@और @/उदाहरण के लिए .. या वे पश्चिम में अनंत काल तक बाध्य हैं?