লুটের জন্য তৈরি করা হচ্ছে


12

ভূমিকা

দীর্ঘ লড়াইয়ের পরে, আপনি ধাঁধাগুলির প্রতিযোগিতায় একটি স্পিনিক্সকে পরাস্ত করতে সক্ষম হয়েছেন। স্পিঙ্কস, আপনার দক্ষতায় মুগ্ধ হয়ে, আপনাকে আপনার চতুরতার সাথে সামঞ্জস্যপূর্ণ পুরষ্কার প্রদান করতে চায়, এবং আটটি বাক্সে বিভক্ত যাদুকরী পার্চমেন্টের একটি স্ট্রিপকে অস্তিত্বে পরিণত করে, যার প্রত্যেকটিতে একটি সংখ্যা রয়েছে।

স্ফিংস বলে, "পার্চমেন্ট তৈরি করুন," যেমন বাক্সগুলি ওভারল্যাপ হয় এবং সেই বাক্সগুলি সংযোজন বা গুণনের মাধ্যমে একত্রী হয় When যখন একটি বাকী অবশিষ্ট থাকবে, তখন এর মূল্য সোনার মুদ্রায় আপনার পুরষ্কার হবে ""

কার্য

আপনাকে অবশ্যই এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হবে যা আটটি প্রাকৃতিক সংখ্যার যাই হোক না কেন ইনপুট হিসাবে তালিকা / অ্যারে / নেবে এবং 'ক্রিজ' ক্রিয়াকলাপের মাধ্যমে সর্বাধিক সম্ভাব্য পুরষ্কার প্রদান / মুদ্রণ করবে।

বলবিজ্ঞান

'ক্রিজ' অপারেশন কয়েকটি সংখ্যক কোষে এবং অপারেটর হিসাবে +বা *অপারেটর হিসাবে সম্পাদিত হয় । তালিকার প্রথম এন কোষগুলি অপরিবর্তিত হয় এবং অপারেটরটি ব্যবহার করে তাদের গন্তব্য কক্ষগুলির সাথে একত্রিত হয়। যে কোনও ঘর যা মার্জ অপারেশনে গ্রাস করা হয় না তা অবিচ্ছিন্ন রেখে দেওয়া হয়েছে।

এখানে n = 3 টি কক্ষ ব্যবহার করে ক্রিজ করার একটি উদাহরণ রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

উভয় যোগ ব্যবহার করে, যার ফলস্বরূপ:

এখানে চিত্র বর্ণনা লিখুন

বা গুণ, যার ফলস্বরূপ:

এখানে চিত্র বর্ণনা লিখুন

দ্রষ্টব্য: সরলতার জন্য, 1 টিরও কম সেল সহ ক্রিজিং নিষিদ্ধ করা হয়েছে, যেমন তালিকার দৈর্ঘ্যের চেয়ে বেশি বা সমান সংখ্যক কোষের সাথে ক্রিজিং করা হয়। যাইহোক, একটি তালিকা তার ঘর গণনার অর্ধেকেরও বেশি দ্বারা ক্রিজ করা যেতে পারে।

8 টি কোষের একটি তালিকা 5 দ্বারা ক্রিজ করা যেতে পারে, ফলে দৈর্ঘ্যের 5 টি নতুন তালিকা তৈরি হয়: অপারেটর [0,1,2,3,4,5,6,7]ব্যবহার করে 5 কোষ দ্বারা ক্রিজ করা +হবে [9,9,9,1,0]

স্কোরিং

স্ট্যান্ডার্ড কোড গল্ফ নিয়ম - কোড যা সঠিক আউটপুট উত্পন্ন করে এবং বাইট জয়ের সংখ্যা সবচেয়ে কম।

বোনাস: যদি আপনার কোডটি ক্রেজ ক্রিয়াকলাপগুলির ক্রমও প্রেরণ / মুদ্রণ করে যা সর্বাধিক পুরষ্কারের দিকে পরিচালিত করে, আপনার স্কোরকে ০.৮ দিয়ে গুন করুন। উদাহরণ আউটপুট যেমন দেখতে পারে:

crease 5 +
crease 2 *
crease 2 +
crease 1 *

উদাহরণ

এই ইনপুট এবং ফলাফলগুলি ব্যবহার করে আপনার কোডটি এই আকারে পরীক্ষা করুন input - maximum reward:

[0, 1, 2, 3, 4, 5, 6, 7] - 7560
[0, 9, 0, 3, 2, 6, 1, 5] - 1944
[0, 1, 0, 3, 0, 2, 0, 4] - 36
[6, 0, 9, 1, 9, 0, 7, 3] - 11907
[0, 5, 2, 0, 1, 3, 8, 8] - 2560

"স্কোরিং" শিরোনামের নীচে উদাহরণ আউটপুটটি অবৈধ। 5 এবং 2 ক্রিজ করার পরে এখানে কেবল 3 টি কক্ষ অবশিষ্ট রয়েছে, সুতরাং 3 ক্রিজ করা কোনও অর্থ দেয় না।
হ্যান্ড-ই-ফুড

ভাল যুক্তি. আমি এটা পরিবর্তন করব।
ফোজেন

উত্তর:


2

পাইথ, 31 বাইট

Le+bSyMsm,sMJ.T,_<bd>bdm*FkJtUb

এটি একটি ফাংশন সংজ্ঞায়িত করে y, যা ক্রিজ মানটি গণনা করে।

প্রদর্শন.

এটি প্রতিটি সম্ভাব্য উত্তরসূরির সর্বোচ্চ স্কোর গ্রহণ করে পুনরুদ্ধারযোগ্য পদ্ধতিটি ব্যবহার করে।

সম্ভাব্য উত্তরসূরিদের বাছাই করা মানগুলিতে ইনপুটটি সংযুক্ত করে এবং তারপরে ফলাফলের তালিকার শেষের মাধ্যমে পুনরাবৃত্তির বেস কেস প্রয়োগ করা হয়। ইনপুটটিতে যদি কেবল 1 টি উপাদান থাকে তবে কোনও উত্তরসূরি নেই, এবং সেইজন্য তালিকার শেষটি ইনপুটটির একটি উপাদান।


এই মারধর করা কল্পনা করা শক্ত। হয়তো সিজেমের কোনও সুযোগ আছে?
ফোসগেন

2

সি #, 275 272 বাইট

এটি কেবল একটি পুনরাবৃত্ত ফাংশন যা প্রতিটি শাখাকে অনুসরণ করে এবং সেরা স্কোরটি দেয়।

স্বচ্ছতার জন্য যুক্ত

using M=System.Math;
int F(int[]n){
    int b=0,g,h,i=0,j,k,l=n.Length;
    if(l<2)
        return n[0];
    for(;++i<l;){
        int[]m=new int[k=M.Max(i,l-i)],o=new int[k];
        for(j=0;j<k;j++){
            m[j]=((g=i-j-1)<0?0:n[g])+((h=i+j)<l?n[h]:0);
            o[j]=h<l&g>=0?n[g]*n[h]:m[j];
        }
        b=M.Max(b,M.Max(F(m),F(o)));
    }
    return b;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.