संपादित करें: प्रश्न के अंत में बाउंटी पहेली।
1-अंकीय संख्याओं के एक सेट को देखते हुए, आपको यह निर्धारित करना चाहिए कि वे कितने ऊंचे टॉवर का निर्माण कर सकते हैं।
अंक जमीनी स्तर के साथ एक क्षैतिज तल पर रहते हैं जहां वे खड़े हो सकते हैं। कोई भी अंक बहु-अंकों की संख्या के साथ भ्रमित नहीं होना चाहता है, इसलिए उनके दोनों तरफ हमेशा खाली जगह होती है।
4 2 1 9 6 8
एक अंक दूसरे के ऊपर हो सकता है:
2
6
या इसके नीचे दो अन्य तिरछे समर्थन कर सकते हैं:
9
5 8
नीचे वाले को वजन का समर्थन करना होता है, जो ऊपरी एक का समर्थन करता है (यदि कोई है), तो ऊपरी वाले का वजन जो हमेशा 1 होता है । यदि दो समर्थक हैं, तो वे ऊपरी कुल वजन को समान रूप से विभाजित करते हैं (50% -50%)।
प्रत्येक अंक का वजन इसके मूल्य से 1 स्वतंत्र है।
यदि एक अंक दो अन्य का समर्थन करता है तो उसे अपने संबंधित वजन के योग का समर्थन करने में सक्षम होना चाहिए। एक अंक अपने अधिकांश संख्यात्मक मूल्य पर समर्थन कर सकता है।
कुछ मान्य टावरों (ऊंचाइयों के साथ 4, 3और 5):
0
7 1
5 1 1 1 9 supports a total weight of 1.5 = (1+1/2)/2 + (1+1/2)/2
2 5 4 5 5
3 5 9 5 5 6 3 6 supports a total weight of 3 = 1.5 + 1.5 = (2*1+(2*1/2))/2 + (2*1+(2*1/2))/2
कुछ अमान्य टॉवर:
1 5 The problems with the towers are (from left to right):
1 12 2 3 8 1 can't support 1+1; no space between 1 and 2;
1 5 6 1 1 1 9 1 can't support 1.5 = (1+1/2)/2 + (1+1/2)/2; 8 isn't properly supported (digits at both bottom diagonals or exactly below the 8)
आपको एक प्रोग्राम या फ़ंक्शन लिखना चाहिए जिसने इनपुट आउटपुट के रूप में अंकों की एक सूची दी है या उन अंकों में से कुछ (शायद सभी) का उपयोग करके सबसे ऊंचे टॉवर का निर्माण करने योग्य है।
इनपुट
- कम से कम एक तत्व के साथ गैर-नकारात्मक एकल-अंकीय संख्याओं की एक सूची।
उत्पादन
- एक एकल सकारात्मक पूर्णांक, उच्चतम निर्माणीय टॉवर की ऊंचाई।
- आपके समाधान को मेरे कंप्यूटर पर एक मिनट के तहत किसी भी उदाहरण के परीक्षण के मामले को हल करना है (मैं केवल करीबी मामलों का परीक्षण करूंगा। मेरे पास एक नीचे-औसत पीसी है।)।
उदाहरण
प्रारूप Input list => Output numberअगली पंक्तियों पर एक संभावित टॉवर के साथ है जो आउटपुट का हिस्सा नहीं है।
[0] => 1
0
[0, 1, 1, 1, 1, 1] => 3
0
1
1 1
[1, 1, 1, 1, 1, 2, 2] => 4
1
1
1 1
1 2 2
[0, 0, 2, 2, 2, 2, 2, 5, 5, 5, 7, 7, 9] => 9
0
2
2
5
5
5
7
7
9
[1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5] => 9
1
2
2
3
4
5
3 3
4 4 4
5 5 5 5
[0, 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 5, 5, 5, 5, 7, 7, 9] => 11
0
1
2
3
4
5
3 3
4 5
5 5
3 7 3
2 7 9 2
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9] => 12
0
1
2
3
4
5
6
7
4 5
6 7
8 8
9 9
[0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9] => 18
0
1
2
3
4
5
6
7
8
9
5 5
6 6
7 7
4 8 4
3 7 7 3
2 6 8 6 2
2 5 8 8 5 2
3 9 9 9 9 3
यह कोड-गोल्फ है, इसलिए सबसे छोटी प्रविष्टि जीतती है।
इनाम
मैं बहुपद समय (इनपुट सूची की लंबाई के संबंध में) के नीचे विस्तारित समस्या के समाधान के लिए 100 प्रतिष्ठा इनाम (पहले से सम्मानित किए गए से असंबंधित) को पुरस्कार दूंगा या यह साबित करूंगा कि यह संभव नहीं है (पी = एनपी मानकर)। विस्तारित समस्या का विवरण:
- इनपुट नंबर किसी भी गैर-नकारात्मक पूर्णांक हो सकते हैं, न कि केवल अंक
- बहु-अंकीय संख्याएँ एकल-अंकीय संख्याओं के समान स्थान लेती हैं
- बहु-अंक संख्या वे संख्यात्मक मान
24का समर्थन कर सकते हैं जैसे कि समर्थन कर सकते हैं24
बाउंटी प्रस्ताव की कोई समाप्ति तिथि नहीं है। यदि कोई सबूत दिखाई देता है तो मैं इनाम को जोड़ूंगा और इनाम दूंगा।
3-2-5-7टॉवर मुझे भ्रमित करता है। आप कहते हैं कि "नीचे वाला (s) को वजन का समर्थन करना होता है ऊपरी एक का समर्थन करता है (यदि कोई है), और ऊपरी का वजन जो हमेशा 1. होता है", जो आपके साथ यह कहते हुए टकराता है कि एक अंक अधिकतम समर्थन कर सकता है 'इसका संख्यात्मक मान' - यदि प्रत्येक अंक का वजन एक है, तो अलग-अलग संख्या होने का क्या मतलब है?