( इस Math.SE समस्या के आधार पर , जो कुछ ग्राफिक्स भी प्रदान करता है)
मेरे पास एक छड़ी है जो इस तरह थोड़े दिखती है:

मैं इसे इस तरह थोड़े देखना चाहता हूं:

हालांकि, मैं एक विशेषज्ञ चित्रकार नहीं हूं, इसलिए इससे पहले कि मैं इस तरह की महत्वाकांक्षी DIY परियोजना शुरू करूं, मैं यह सुनिश्चित करना चाहता हूं कि मैं अपने सिर के ऊपर नहीं हूं।
आपके कार्यक्रम को यह बताना चाहिए कि इस छड़ी को बनाने में कितने कदम शामिल हैं। प्रत्येक चरण में एक ठोस रंग के साथ एक निरंतर क्षेत्र को चित्रित करना शामिल है, जो पेंट की पिछली परतों को कवर करता है। उपरोक्त उदाहरण के लिए, मैं बाएं आधे नीले, दाहिने आधे लाल, और फिर कुल 4 चरणों के लिए दो अलग-अलग हरे क्षेत्रों को चित्रित कर सकता था (हरा लगातार चित्रित नहीं है)।

यहाँ यह ASCII में है:
------
bbb---
bbbrrr
bgbrrr
bgbrgr
इस छड़ी को चित्रित करने और उसी परिणाम के साथ समाप्त करने के लिए कुछ अलग तरीके हैं। मुझे केवल समय अनुमान में दिलचस्पी है, हालांकि, जो चार चरणों में है।
लक्ष्य
आपके कार्यक्रम को दिए गए रंग योजना के साथ छड़ी को चित्रित करने के लिए आवश्यक न्यूनतम चरणों का उत्पादन करना चाहिए। पेंट योजना पात्रों के एक स्ट्रिंग के रूप में होगी, जबकि आउटपुट एक संख्या होगी। यह कोड गोल्फ है। सबसे छोटा कार्यक्रम जीतता है।
इनपुट
आपके कार्यक्रम को पत्रों की एक स्ट्रिंग के रूप में एक छड़ी के लिए रंग योजना प्राप्त होगी। प्रत्येक अद्वितीय अक्षर (केस संवेदी) एक अद्वितीय रंग का प्रतिनिधित्व करता है।
YRYGR
grG
GyRyGyG
pbgbrgrp
hyghgy
उत्पादन
ये संख्या लाठी को चित्रित करने के लिए आवश्यक कदमों की सबसे कम संख्या है।
4
3
4
5
4
स्पष्टीकरण
यह है कि मैं उपरोक्त संख्याओं पर कैसे पहुंचा। आपके प्रोग्राम को इसे आउटपुट करने की आवश्यकता नहीं है:
-----
YYY--
YRY--
YRYG-
YRYGR
---
g--
gr-
grG
-------
GGGGGGG
GyyyGGG
GyRyGGG
GyRyGyG
--------
pppppppp
pbbbpppp
pbbbrrrp
pbgbrrrp
pbgbrgrp
------
-yyyyy
-ygggy
hygggy
hyghgy
संपादित करें: यदि वे अधिक कठिन परीक्षण मामले साबित होते हैं तो मैं और अधिक परीक्षण मामले जोड़ूंगा।