অ্যাডভেন্ট চ্যালেঞ্জ 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

বিধি

  • স্ট্যান্ডার্ড লুফোলস প্রয়োগ করুন
  • ইনপুট এবং আউটপুট যে কোনও যুক্তিসঙ্গত বিন্যাসে দেওয়া এবং উপস্থাপন করা যেতে পারে
  • আপনাকে অবশ্যই চার্জের তালিকা হিসাবে নয়, উপহারের তালিকা হিসাবে ইনপুট নিতে হবে।
  • এটা একটা , তাই বাইটস মধ্যে সংক্ষিপ্ত উত্তর
  • কোন উত্তর গৃহীত হবে না

আশা করি এই চ্যালেঞ্জটি আগের তুলনায় আরও সহজ: পি

দ্রষ্টব্য: আমি অ্যাডভেন্ট অফ কোড থেকে এই চ্যালেঞ্জ সিরিজের জন্য অনুপ্রেরণা তৈরি করেছি । এই সাইটের সাথে আমার কোনও সম্পর্ক নেই

আপনি এখানে প্রথম চ্যালেঞ্জের 'লিঙ্কযুক্ত' বিভাগটি দেখে সিরিজের সমস্ত চ্যালেঞ্জের একটি তালিকা দেখতে পারেন ।


c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
গ্রাহাম

@ গ্রাহাম হ্যাঁ, দেখা যাচ্ছে আমি এটিকে যুক্ত করতে ভুলে গেছি specific নির্দিষ্টকরণ থেকে সরিয়ে নেওয়া।
হাইপারনিউটারিনো

বিভ্রান্তির জন্য দুঃখিত আমি আসল ধারণাটি ধরে রাখার সিদ্ধান্ত নিয়েছি এবং এটিও প্রতিফলিত করার জন্য আমি আমার পরীক্ষার কেসগুলি সম্পাদনা করেছি। ধন্যবাদ!
হাইপারনিউটারিনো

6
আমি এই সিরিজটির চ্যালেঞ্জগুলি উপভোগ করছি তবে (স্বীকারোত্তরভাবে, বেশ কয়েকটি ভাল বিয়ারের পরে!) এটিকে ঠিক মনে হয় কোন ভাষা সৃজনশীল গল্ফিংয়ের কোনও জায়গা ছাড়াই স্বল্পতম বাইটে বন্ধ সূত্রটি কার্যকর করতে পারে তাই, এই উদাহরণে, কোন + আমার কাছ থেকে 1
শেগি

1
আমি বিদ্যমান মন্তব্য পয়েন্টগুলি পরিষ্কার করার পরে অতিরিক্ত নিকট-ভোটারদের কাছে আমার আরও কী স্পষ্ট করা উচিত?
হাইপারনিউটারিনো

উত্তর:


5

জাভাস্ক্রিপ্ট (ES6), 58 বাইট

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

পরীক্ষার মামলা

কিভাবে?

এখানে ব্যবহৃত একমাত্র কৌশলটি হল (xy + xz) কে x (y + z) হিসাবে চিহ্নিত করা এবং সূত্রের শেষ অংশে যোগফল (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 শেভ করতে পারেন
প্রিন্সপলকা


@ প্রিন্সপোলকা আপনাকে ধন্যবাদ সম্মতি অনুযায়ী, একটি ফাংশন একাধিকবার কাজ করতে হয়, তাই j=t=0থাকতে হবে। বাইট সংরক্ষণের জন্য কীভাবে গণনাটি পুনরায় সাজানো যায় তা আমি বেশ বুঝতে পারি না; আপনি যদি আপনার গল্ফ প্রয়োগ করে কোডের একটি সম্পূর্ণ সংস্করণে লিঙ্ক করেন তবে এটি সহায়তা করবে।
জোনাথন ফ্রেচ


@ প্রিন্সপোলকা অনেক ধন্যবাদ
জনাথন ফ্রেচ 16




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))

এটি গুগল শিটগুলিতে স্থানান্তর করে, এবং টার্মিনালটি ফেলে 2 বাইট ফেলে দিতে পারেন))
টেলর স্কট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.