चुनौती को चुनौती 3: प्रस्तुत करने के लिए समय निकालें!


9

<< पिछला अगला >>

दुर्भाग्य से, सांता समय में कल्पित बौने को पकड़ने में सक्षम नहीं था! उसे अब निर्माण प्रस्तुत करने के लिए वापस जाना होगा। चूंकि कल्पित बौने निश्चित रूप से सांता के दास नहीं हैं, इसलिए उन्हें भुगतान करने के लिए खर्चों का पता लगाना होगा।

चुनौती

प्रस्तुत जानकारी के लिए कुछ जानकारी देते हुए, उन सभी के निर्माण की लागत निर्धारित करें।

प्रत्येक वर्तमान को एक कार्डबोर्ड बॉक्स में रखा जाता है और रैपिंग पेपर के साथ लपेटा जाता है, जिसमें बहुत अंत में एक रिबन लपेटा जाता है। रैपिंग पेपर जादुई है और इसमें ओवरलैप की आवश्यकता नहीं है, इसलिए उपयोग किए जाने वाले रैपिंग पेपर की मात्रा बॉक्स के सतह क्षेत्र के बराबर है। सभी प्रस्तुत आयताकार प्रिज्म हैं क्योंकि इस तरह सांता उन्हें अधिक कॉम्पैक्ट रूप से संग्रहीत कर सकता है। रिबन तीनों दिशाओं में घूमता है (इसलिए रैपिंग के लिए इस्तेमाल की जाने वाली रिबन की लंबाई तीन अलग-अलग परिधि के योग के बराबर होती है)।

वर्तमान में अपने आप में एक ज्ञात लागत है, सौभाग्य से। कार्डबोर्ड की लागत $ 1 प्रति वर्ग मीटर है, और रैपिंग पेपर की लागत $ 2 प्रति वर्ग मीटर है। (संकेत: आप सतह क्षेत्र को 3: P से गुणा कर सकते हैं)। रिबन की कीमत $ 1 प्रति मीटर है।

प्रारूप विनिर्देशों

इनपुट को उन दावों की एक सूची के रूप में दिया जाएगा जहां प्रत्येक वर्तमान में वास्तविक वस्तु की लागत और वर्तमान बॉक्स के तीन आयाम शामिल हैं। आपका आउटपुट आवश्यक कुल लागत होना चाहिए।

सटीक होना करने के लिए, आइटम लागत के साथ एक एकल वर्तमान की लागत के लिए सूत्र cऔर आयाम x, yऔर zहै c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)

परीक्षण के मामलों

[[7, 8, 6, 7], [7, 7, 5, 5], [8, 9, 6, 7], [6, 5, 10, 10], [5, 9, 6, 7], [9, 9, 10, 6], [8, 10, 10, 6], [6, 5, 7, 9], [7, 10, 8, 8], [5, 9, 9, 10]] -> 11866
[[5, 10, 8, 9], [8, 8, 5, 8], [8, 7, 7, 6], [5, 9, 9, 10], [9, 7, 5, 8], [9, 8, 9, 5], [7, 5, 6, 7], [5, 7, 6, 10]] -> 8854
[[9, 8, 8, 8], [10, 9, 8, 5], [10, 7, 5, 5], [10, 10, 6, 6], [8, 5, 8, 7]] -> 4853
[[7, 7, 8, 10], [8, 10, 7, 8], [9, 7, 7, 8], [8, 5, 10, 5], [6, 6, 6, 8], [8, 9, 7, 5], [8, 5, 6, 5], [7, 9, 8, 5], [10, 10, 10, 8]] -> 9717
[[5, 8, 9, 7], [5, 8, 7, 10], [5, 7, 7, 6], [5, 5, 5, 6], [9, 9, 5, 7], [5, 6, 7, 8], [8, 5, 8, 7], [6, 9, 5, 5], [10, 10, 9, 10]] -> 9418
[[9, 9, 7, 10], [5, 8, 7, 9], [5, 5, 9, 8], [10, 5, 9, 10], [8, 5, 10, 7], [8, 9, 5, 5], [5, 10, 6, 10]] -> 8178
[[5, 9, 5, 8], [7, 8, 10, 6], [7, 10, 7, 10], [8, 9, 7, 5], [5, 7, 8, 6], [9, 9, 6, 10], [6, 5, 9, 9], [7, 9, 9, 9]] -> 9766
[[7, 10, 5, 10], [8, 10, 8, 9], [8, 6, 7, 8], [6, 9, 8, 5], [6, 7, 10, 9], [7, 6, 5, 8]] -> 7118
[[10, 6, 7, 5], [5, 9, 5, 9], [9, 7, 8, 5], [6, 6, 9, 9], [9, 9, 6, 9], [10, 5, 8, 9], [7, 5, 6, 10], [9, 10, 5, 5]] -> 8007
[[8, 10, 7, 8], [9, 10, 5, 8], [6, 7, 5, 6], [10, 10, 9, 8], [7, 5, 8, 9], [10, 10, 6, 7], [10, 8, 9, 10], [5, 10, 5, 5]] -> 9331

नियम

  • स्टैंडर्ड लोफॉल्स लागू होते हैं
  • इनपुट और आउटपुट किसी भी उचित प्रारूप में दिए और दिए जा सकते हैं
  • आपको इनपुट को प्रस्तुत सूची के रूप में लेना चाहिए, न कि विशेषताओं की 4 सूचियों पर।
  • यह है एक , इसलिए बाइट्स में सबसे छोटा जवाब जीत जाता है
  • कोई उत्तर स्वीकार नहीं किया जाएगा

उम्मीद है कि यह चुनौती पिछले वाले की तुलना में आसान है: पी

नोट: मैंने इस चुनौती श्रंखला के लिए Advent of Code से प्रेरणा ली । मेरा इस साइट से कोई जुड़ाव नहीं है

आप यहां पहली चुनौती के 'लिंक्ड' सेक्शन को देखकर श्रृंखला की सभी चुनौतियों की सूची देख सकते हैं ।


क्या हमने "रिबन के लिए अतिरिक्त 1 मीटर" खो दिया हैc + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
ग्राहम

@ ग्राहम हां, पता चलता है कि मैं इसे जोड़ना भूल गया। विनिर्देशों से हटाकर।
२३:२r बजे हायपरनेट्रिनो

@cairdcoinheringaahing भ्रम के लिए क्षमा करें। मैंने मूल विचार के साथ रहने का फैसला किया और मैंने अपने परीक्षण मामलों को भी प्रतिबिंबित करने के लिए संपादित किया है। धन्यवाद!
हाइपरन्यूट्रिनो 22

6
मैं चुनौतियों की इस श्रृंखला का आनंद ले रहा हूं लेकिन (वास्तव में, कुछ अच्छे बियर के बाद!) यह सिर्फ ऐसा लगता है कि कौन सी भाषा रचनात्मक गोल्फिंग के लिए सबसे कम कमरे में बंद फार्मूला को बिना किसी बाधा के निष्पादित कर सकती है, इसलिए इस उदाहरण में, नहीं + 1 मुझसे।
झबरा

1
मौजूदा टिप्पणी बिंदुओं को स्पष्ट करने के बाद अतिरिक्त करीबी मतदाता को, मुझे और क्या स्पष्ट करना चाहिए?
हाइपरएन्यूट्रीनो

जवाबों:


5

जावास्क्रिप्ट (ईएस 6), 58 बाइट्स

a=>a.reduce((p,[c,x,y,z])=>p+c+6*(y*z+x*(y+=z))+4*(x+y),0)

परीक्षण के मामलों

कैसे?

यहाँ इस्तेमाल की जाने वाली एकमात्र ट्रिक है x (y + z ) के रूप में (xy + xz) को फैक्टराइज़ करना और सूत्र के अंतिम भाग में योग (y + z) का फिर से उपयोग करना ।

a => a.reduce(                    // for each present in a:
  (s, [c, x, y, z]) =>            //   s = sum, [c, x, y, z] = present parameters
    s +                           //   add to s:
    c +                           //     c
    6 * (y * z + x * (y += z)) +  //     6(yz + x(y + z))
    4 * (x + y),                  //     4(x + (y + z))
  0                               //   initial sum = 0
)                                 // end of reduce()




2

सी (जीसीसी) , 104 100 99 93 बाइट्स

  • सहेजे गए चार पाँच करने के लिए ग्यारह बाइट्स धन्यवाद PrincePolka
t,x,y,z;f(A,a)int*A;{for(t=0;a--;)t+=*A+++6*((x=*A++)*(y=*A++)+(z=*A++)*(x+=y))+4*(x+z);t=t;}

इसे ऑनलाइन आज़माएं!

वर्तमान विशेषताओं की सूची लेता है (सूची लंबाई चार से विभाज्य) और एक पूर्णांक प्रस्तुत करने की संख्या को निर्दिष्ट करता है। सभी प्रस्तुत निर्माण की लागत लौटाता है।


100 बाइट्स यदि आपको एक से अधिक काम करने की आवश्यकता नहीं है तो आप j = t = 0 से दाढ़ी बना सकते हैं,
प्रिंसपोलका


@PrincePolka धन्यवाद। आम सहमति के अनुसार, एक फ़ंक्शन को कई बार काम करना j=t=0पड़ता है , इसलिए रहना पड़ता है। मैं यह पता नहीं लगा सका कि बाइट को बचाने के लिए गणना को कैसे पुनर्व्यवस्थित किया जाए; यदि आप अपने गोल्फ को लागू करने के साथ कोड के पूर्ण संस्करण से जुड़े हैं तो यह मदद करेगा।
जोनाथन फ्रीच


@PrincePolka बहुत बहुत धन्यवाद।
जोनाथन फ्रीच

1

05AB1E , 17 बाइट्स

vyćsO4*y¦æ2ùPO6*O

इसे ऑनलाइन आज़माएं!

व्याख्या

v                  # for each present y
 yć                # extract the head (cost)
   s               # swap the dimensions to the top
    O4*            # sum and multiply by 4
       y¦          # push y with the head (cost) removed
         æ         # compute the powerset
          2ù       # keep only elements of length 2
            PO     # product and sum
              6*   # multiply by 6
                O  # sum everything



0

एक्सेल, 60 बाइट्स

इनपुट कॉलम से लिया Aकरने के लिए D, वर्तमान प्रति नई पंक्ति। किसी अन्य स्तंभ में सूत्र।

=SUMPRODUCT(A:A+6*(B:B*C:C+C:C*D:D+B:B*D:D)+4*(B:B+C:C+D:D))

आप इसे Google शीट में स्थानांतरित करके 2 बाइट छोड़ सकते हैं, और टर्मिनल को छोड़ सकते हैं))
टेलर स्कॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.