विश्व बिग डोसा


37

आप एक प्रतिभाशाली युवा महाराज जो अभी के पद की पेशकश की गई है सूस महाराज दुनिया के सबसे प्रतिष्ठित भारतीय रेस्तरां में। आपको भारतीय व्यंजन तैयार करने का बहुत कम अनुभव है, लेकिन आप दृढ़ निश्चयी हैं, इसलिए आप खुद को साबित करने के लिए तैयार हैं। आप प्रमुख डोसा विशेषज्ञ बनने का फैसला करते हैं । ऐसा करने के लिए, आपको न केवल दोस के निर्माण में महारत हासिल करनी चाहिए, बल्कि आप उन्हें बड़े पैमाने पर मनमानी करने में सक्षम होना चाहिए।

आपको डोसा बल्लेबाज के लिए एक आशाजनक नुस्खा मिलता है :

  • 1 कप चावल
  • 1 कप ukda chawal
  • 1/2 कप उड़द की दाल
  • 1/4 कप पोहा
  • 1/4 छोटा चम्मच मेथी के बीज
  • नमक स्वादअनुसार
  • आवश्यकतानुसार पानी

इससे डोसा लगभग 1/2 मीटर लंबाई का हो जाएगा।

चुनौती

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

मापने वाले चम्मच और कप निम्नलिखित मानक आकारों में आते हैं: 1/4, 1/3, 1/2, 2/3, 3/4, और 1. रसोई के कर्मचारियों को नाराज करने से बचने के लिए, माप को सबसे बड़ी इकाई में सूचित किया जाना चाहिए । जो संख्या केवल मानक आकारों का उपयोग करके मिश्रित संख्याओं के रूप में लिखा जा सकता है ।

मापन निम्नलिखित सम्मेलन के अनुसार बड़े आकार में फैलता है:

  • 3 चम्मच == 1 बड़ा चम्मच
  • 4 बड़े चम्मच == 1/4 कप

तो 12 के कई के लिए, 1/4 चम्मच मेथी बीज 1 बड़ा चम्मच बन जाता है। हालांकि, 13 के कई के लिए, यह 3 1/4 छोटा चम्मच बन जाता है। अन्यथा इसे मानक आकारों में नहीं दिखाया जाएगा।

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

इनपुट

STDIN (या निकटतम विकल्प), कमांड लाइन तर्क या फ़ंक्शन तर्क के माध्यम से एक सकारात्मक पूर्णांक लें। यह संख्या नुस्खा के लिए स्केलिंग कारक निर्धारित करती है और 1 के रूप में छोटी हो सकती है, लेकिन 2 32 -1 से अधिक नहीं । यह उस सीमा में कोई भी पूर्णांक हो सकता है।

उत्पादन

STDOUT (या निकटतम वैकल्पिक) के लिए प्रिंट करें इनपुट के अनुसार स्केल की गई सामग्री की सूची और साथ ही डोसा ले जाने के लिए आवश्यक वेटरों की संख्या। सामग्री ऊपर दिए गए क्रम में और नीचे दिए गए प्रारूप में सूचीबद्ध होनी चाहिए।

उदाहरण

इनपुट:

2

आउटपुट:

2 cups rice
2 cups ukda chawal
1 cup urad dal
1/2 cup poha
1/2 tsp methi seeds
Salt to taste
Water as needed
1 waiter

ध्यान दें कि "कप" बदलकर "कप" हो जाता है जब मूल्य 1 से अधिक होता है। "tsp" नहीं बदलता है। "वेटर," जैसे "कप," बहुवचन बन जाता है।

इनपुट:

5

आउटपुट:

5 cups rice
5 cups ukda chawal
2 1/2 cups urad dal
1 1/4 cups poha
1 1/4 tsp methi seeds
Salt to taste
Water as needed
3 waiters

1 से अधिक गैर-पूर्णांक मानों को मिश्रित संख्याओं के रूप में दर्शाया जाता है, यानी एक पूर्णांक जिसके बाद एक छोटा अंश होता है।

नोट: शीर्षक एक प्रासंगिक वीडियो से आता है ।


15
अब हमें किसी को शेफ का जवाब देने की आवश्यकता है :)
मिकी

11
"यदि वे भिन्नात्मक टुकड़ों में काटे जाते हैं, तो प्रतीक्षा कर्मचारी कम प्रभावी होते हैं, इसलिए वेटरों की एक पूर्णांक संख्या की हमेशा आवश्यकता होती है।" ... कितना कम प्रभावी, बिल्कुल?
लिविंगइनफॉर्मेशन

4
@LivingInformation अच्छा, क्या आपने कभी सिर्फ एक जोड़ी पैरों को अपनी टेबल पर ले जाते हुए देखा है?
एलेक्स ए।

7
@AlexA। क्या आपने नहीं किया?
लिविंगइनफॉर्मेशन

7
@ मिक्की: मैंने कोशिश की, लेकिन मुझे लगता है कि सीपीएएन से शेफ दुभाषिया में कुछ कीड़े हैं। (ए) आउटपुट मान रिक्त स्थान द्वारा अलग किए जाते हैं, सिवाय जब वे नहीं होते हैं। (b) मेरी मिश्रित संख्या चटनी उप-रेसिपी के बारे में कुछ (या यह तुलना पुदीना दही है?) दुभाषिया एक अस्पष्ट त्रुटि संदेश के साथ मरने का कारण बन रहा है।
टिम पैडरिक 13

जवाबों:


9

सीजेम, 214 बाइट्स

ri[48_24C.25]{[48ZX]f{:DW$@*\md_D{_@\%}h;:M/iDM/}3/_{W=5<}#:I=[(\'/*]{S+_0e=!*}/["cup"2$2a>'s*+"tbsp"_'b-]I=S}%4/"rice
ukda chawal
urad dal
poha
methi seeds
Salt to taste
Water as needed"N/.+N*N@)2/" waiter"1$1>'s*

CJam दुभाषिया में इसे ऑनलाइन आज़माएं ।


वास्तव में अभी तक गोल्फ नहीं हुआ है, लेकिन देर हो चुकी है और मैं पहला जवाब पोस्ट करना चाहता था।
डेनिस

चूँकि कोई शेफ उत्तर पोस्ट नहीं किया गया है और आपका बाउंटी अवधि के अंत में सबसे छोटा वैध उत्तर है, आप इनाम जीतते हैं। मेरी पहली चुनौती में भाग लेने के लिए धन्यवाद। :)
एलेक्स ए।

7

जावास्क्रिप्ट (ईएस 6), 443 वर्ण

यह गोल्फ के लिए बहुत मजेदार था, लेकिन नतीजा काफी लंबा है जो मैं उम्मीद कर रहा था।

d=n=>(y=s=>n<s?' cup':' cups',z=s=>n/s|0,A=' 1/4',B=' 1/2',C=' 3/4',n+y(2)+` rice
${n+y(2)} ukda chawal
${(n%2<1?n/2:z(2)+B)+y(3)} urad dal
${((e=n%4)<1?n/4:z(4)+(e<2?A:e<3?B:C))+y(5)} poha
${(n%48<1?z(192)+((c=n/48%4)>2?C:c>1?B:c>0?A:'')+y(193):n%3<1?z(12)+((f=n/3%4)>2?C:f>1?B:f>0?A:'')+' tbsp':(z(4)+(e>2?C:e>1?B:e>0?A:''))+' tsp')} methi seeds
Salt to taste
Water as needed
${(b=Math.ceil(n/2))} waiter`+(b<2?'':'s')).replace(/\n0 /g,'\n')

कोशिश करके देखो:

यह मूल्यों को स्वीकार करता है और यहां तक ​​कि इसमें शामिल है 2^32, या 4294967296। उसके बाद, 'उड़द की दाल' विषम संख्याओं पर हावी हो जाती है और नकारात्मक हो जाती है।

मूल रूप से, यह सही मात्रा की गणना करता है क्योंकि यह जाता है। सौभाग्य से, केवल मेथी के बीज को tsp / tbsp / cup के उपाय करने की आवश्यकता है; अन्यथा, यह पूरी तरह से लंबा होता। (अकेले मेथी बीज लाइन 155 वर्ण है!)

यह भी ES5 में कम से कम 500 वर्ण लंबा होता। मैं 6 ईएस ६।

हमेशा की तरह, सुझावों की बहुत सराहना की जाती है!

संपादित करें 1: बस महसूस किया कि नियमों के अनुसार, 1 tspके साथ प्रतिस्थापित किया जाना चाहिए 1/3 tbsp, साथ ही 2 tspऔर 2/3 tbspहै, साथ ही 16 tspऔर 1/3 cup....


1
Math.ceil को छोटा किया जा सकता है -~, b=-~t/2 बहुत छोटा है, आप कोष्ठक को भी बाहर कर सकते हैं
डाउगोएट

@vihan टिप के लिए धन्यवाद, लेकिन यह केवल गैर-पूर्णांक पर काम करता है। -~1परिणाम 2, जिसका इरादा परिणाम नहीं है। सबसे अच्छा विकल्प जो मुझे मिल सकता है, b=-~((n-1e-9)/2)बस उतना ही लंबा है, इसलिए मैं इसे अभी के लिए उसी तरह रखूंगा।
ETHproductions

3

आम लिस्प, 435

(lambda(n)(labels((k(y)(some(lambda(x)(integerp(* y x)))'(1 4/3 3/2 2 3 4)))(h(s m)(multiple-value-bind(q r)(floor m)(format()"~[~:;~:*~A ~]~[~:;~:*~A ~]~@? " q r s m)))(g(o &aux(h(/ o 3))(c(/ h 4)))(cond((k c)(h"cup~P"c))((k h)(h"tbsp"h))(t(h"tsp"o)))))(format t"~&~A rice
~Aukda chawal
~Aurad dal
~Apoha
~Amethi seeds
Salt to taste
Water as needed
~A waiter~:P
"(g(* n 12))(g(* n 12))(g(* n 6))(g(* n 3))(g(/ n 4))(ceiling(/ n 2)))))

थोड़ा अनगढ़

(lambda (n)
  (labels ((k (y)
             (some (lambda (x) (integerp (* y x))) '(1 4/3 3/2 2 3 4)))
           (h (s m)
             (multiple-value-bind (q r)
                 (floor m)
               (format nil "~[~:;~:*~A ~]~[~:;~:*~A ~]~@?" q r s m)))
           (g (o &aux (h (/ o 3)) (c (/ h 4)))
             (cond ((k c) (h "cup~P" c)) ((k h) (h "tbsp" h)) (t (h "tsp" o)))))
    (format t "~&~A rice
~A ukda chawal
~A urad dal
~A poha
~A methi seeds
Salt to taste
Water as needed
~A waiter~:P
"
            (g (* n 12)) (g (* n 12)) (g (* n 6)) (g (* n 3)) (g (/ n 4))
            (ceiling (/ n 2)))))

में सभी उपायों को व्यक्त किया जाता है tspkफ़ंक्शन के आधार पर , यह gतय करता hहै कि उपयुक्त तर्कों के साथ प्रारूपण फ़ंक्शन को मुद्रण के लिए किन इकाइयों का उपयोग करना है।

  • k जब तर्क 1, 1/4, 1/3, 2/3, 4/3 इकाइयों के कई के रूप में व्यक्त किया जा सकता है, तो सही है
  • gइनपुट को कई tbsp के रूप में परिवर्तित करता है और tbsp की संख्या को कई कप के रूप में (जैसा कि प्रश्न में दिया गया है)। हम पहले कप की इकाइयों, या tbsp की इकाइयों द्वारा मुद्रित करने की कोशिश करते हैं, या फिर tps में।
  • hया तो मुद्रित करने के लिए एक सशर्त स्वरूपण निर्देशों का उपयोग x, x y/zया y/zइसके बाद के फ़ॉर्मेट करके sतर्क के साथ m: कप के लिए, sहै "cup~P"जिसके अनुसार शब्द plurializes m

छूट (n = 17)

17 cups rice
17 cups ukda chawal
8 1/2 cups urad dal
4 1/4 cups poha
4 1/4 tsp methi seeds
Salt to taste
Water as needed
9 waiters

यह साफ-सुथरा है। अच्छा काम।
एलेक्स ए।

3

आर, 602 603 526 बाइट्स

अभी भी बहुत सारे कमरे में गोल्फ के लिए यह मुझे संदेह है, लेकिन मैं समय से बाहर चला गया हूं और मैं वास्तव में इस एक के लिए एक उत्तर देना चाहता था।

function(i){S=gsub
M=i/c(1,5,60)
A=list(c(2,1),c(4,3),c(64,48))[[I<-max(which(M>=1))]]
B=c(4,12,192)[I]
V=c(' tsp',' tbsp',' cup')[I]
C=i%/%B
C=C+max((i%%B)%/%A*c(.3,.25))
cat(S('([ ]*)0 ','\\1',S('\\.3',' 1/3',S('\\.6',' 2/3',S('\\.5',' 1/2',S('\\.25',' 1/4',S('\\.75',' 3/4',paste0(i,' cup',if(i>1)'s',' rice
',i,' cup',if(i>1)'s',' ukda chawal
',i*.5,' cup',if(i>2)'s',' urad dal
',i*.25,' cup',if(i>4)'s',' poha
',C,V,if(C>1&I>2)'s',' methi seeds
Salt to taste
Water as needed
',ceiling(i*.5),' waiter',if(i>2)'s'))))))))}

5 के इनपुट के लिए यह है 1/3 tbsp 1/4 tsp methi seedsलेकिन इसे एक ही सामान्य इकाई में दर्शाया जाना चाहिए। तो यह होना चाहिए 1 1/4 tsp methi seeds(यदि मेरा मानसिक गणित सही है)।
एलेक्स ए।

@AlexA। यह भी अच्छा है। मैं इसे जल्द ही ठीक कर दूँगा। मुझे लगता है कि यह कप और tbsp के साथ एक ही है।
मिकटी

हां, सभी इकाइयों के लिए एक ही नियम। इस बीच +1 हालांकि, अच्छे विश्वास पर कि यह जल्द ही सही हो जाएगा। मेरी पहली चुनौती में भाग लेने के लिए धन्यवाद। :)
एलेक्स ए।

1

जावास्क्रिप्ट (Node.js) , 419 बाइट्स

a=>(y=g=>a<g?" cup":" cups",z=g=>a/g|0,a+y(2)+` rice
${a+y(2)} ukda chawal
${(1>a%2?a/2:z(2)+(B=" 1/2"))+y(3)} urad dal
${(1>(e=a%4)?a/4:z(4)+(2>e?A=" 1/4":3>e?B:C=" 3/4"))+y(5)} poha
${1>a%48?z(192)+(2<(c=a/48%4)?C:1<c?B:0<c?A:"")+y(193):1>a%3?z(12)+(2<(f=a/3)?C:1<f?B:0<f?A:"")+" tbsp":z(4)+(2<e?C:1<e?B:0<e?A:"")+" tsp"} methi seeds
Salt to taste
Water as needed
${b=-~a/2|0} waiter`+(2>b?"":"s")).replace(`
0 `,`
`)

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

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