চল মল্ক্কি খেলি!


32

Mölkky

মল্ক্কি একটি ফিনিশ নিক্ষেপকারী খেলা। প্লেয়ারগুলি 1 থেকে 12 পর্যন্ত চিহ্নযুক্ত নিক্ষেপ পিনের সাথে প্রায় অনুরূপ মাত্রার কাঠের পিনগুলিতে নক করার চেষ্টা করার জন্য একটি কাঠের পিন ব্যবহার করেন ("mölkky" নামেও পরিচিত) the পিনের প্রাথমিক অবস্থানটি নিম্নরূপ:

   (07)(09)(08)
 (05)(11)(12)(06)
   (03)(10)(04)
     (01)(02)

এই বিবরণ এবং নীচের বিধিগুলি উইকিপিডিয়া ভিত্তিক ।

সরলিকৃত মল্ক্কি বিধি

  1. এক পিনের উপরে ছিটকে পিনে চিহ্নিত পয়েন্টের সংখ্যা স্কোর করে।

  2. ধাক্কার 2 বা তার বেশি পিনের স্কোর পিনের সংখ্যা উপর ছিটকে (যেমন, ওভার 3 পিনের স্কোর 3 পয়েন্ট ঠক্ঠক্ শব্দ)।

  3. গেমটির লক্ষ্য হ'ল 50 পয়েন্টে পৌঁছানো । স্কোরটি 25 পয়েন্টে সেট করে 50 টিরও বেশি স্কোর করা দন্ডিত হয় ।

  4. এই চ্যালেঞ্জের উদ্দেশ্যে, আমরা এই ধারণাটি করব যে পিনগুলি সবসময় উপরে বর্ণিত সঠিক ক্রমে থাকে। (একটি আসল খেলায়, পিনগুলি যেখানে ওঠে সেখানে প্রতিটি নিক্ষেপের পরে আবার উঠে দাঁড়ায়))

অন্যান্য সমস্ত মল্ক্কি বিধি উপেক্ষা করা হয় এবং কেবলমাত্র একক খেলোয়াড় হিসাবে বিবেচিত হয়।

ইনপুট

12 বুলিয়ানগুলির তালিকার একটি খালি খালি তালিকা। বুলিয়ানগুলির প্রতিটি তালিকা একটি নিক্ষেপের ফলাফল বর্ণনা করে: 1 যদি পিনটি ছিটকে থাকে এবং অন্যথায় 0 হয়। বুলিয়ানগুলি পিনের সঠিক ক্রমে দেওয়া হয়, উপরের বাম থেকে নীচে ডানদিকে: 7 , 9 , 8 , 5 , 11 , 12 , 6 , 3 , 10 , 4 , 1 , 2

আউটপুট

ইনপুটটিতে বর্ণিত সমস্ত ছোঁড়ার পরে স্কোর, 1 , 2 এবং 3 বিধি প্রয়োগ করে গণনা করা ।

বিস্তারিত উদাহরণ

আসুন নিম্নলিখিত ইনপুটটি বিবেচনা করুন:

// 07 09 08 05 11 12 06 03 10 04 01 02
[ [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ],  // scores 5 (rule #1)
  [ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ],  // scores 2 (rule #2), total: 7
  [ 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 ],  // scores 7, total: 14
  [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],  // scores 12, total: 26
  [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],  // scores 12, total: 38
  [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],  // scores 11, total: 49
  [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],  // scores 7, total: 56 -> 25 (rule #3)
  [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ] // scores 2, total: 27

প্রত্যাশিত আউটপুট 27

চ্যালেঞ্জ বিধি

  • আপনি কোনও যুক্তিসঙ্গত বিন্যাসে ইনপুট নিতে পারেন। বুলিয়ানগুলির তালিকার পরিবর্তে, আপনি পূর্ণসংখ্যার ব্যবহার করতে পারেন যেখানে সবচেয়ে উল্লেখযোগ্য বিটটি পিন # 7 এবং সর্বনিম্ন উল্লেখযোগ্য বিটটি পিন # 2 # এই বিন্যাসে, উপরোক্ত উদাহরণ হিসাবে পাস করা হবে [ 256, 2304, 127, 64, 64, 128, 2048, 3072 ]
  • ইনপুট তালিকায় এমন ছোঁড়া থাকতে পারে যেখানে কোনও পিন ছুঁড়ে ফেলা হয় না, সেক্ষেত্রে স্কোরটি অপরিবর্তিত রাখা যায়।
  • স্কোর ঠিক 50 পয়েন্টে পৌঁছানোর জন্য আপনার বিশেষ কিছু করার দরকার নেই । তবে আপনি ধরে নিতে পারেন যে এটি হওয়ার পরে অন্য কোনও নীতি অনুসরণ করবে না।
  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins

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

ইনপুট হিসাবে পূর্ণসংখ্যার তালিকা ব্যবহার করে:

[ 0 ] --> 0
[ 528 ] --> 2
[ 4095 ] --> 12
[ 64, 0, 3208 ] --> 16
[ 16, 1907, 2048 ] --> 18
[ 2023, 2010, 1, 8 ] --> 29
[ 1726, 128, 35, 3136, 1024 ] --> 34
[ 32, 32, 2924, 2, 256, 16 ] --> 28
[ 64, 64, 2434, 1904, 3251, 32, 256 ] --> 25
[ 3659, 2777, 2211, 3957, 64, 2208, 492, 2815 ] --> 25
[ 2047, 1402, 2, 2599, 4, 1024, 2048, 3266 ] --> 50
[ 256, 2304, 127, 64, 64, 128, 2048, 3072 ] --> 27
[ 16, 8, 128, 1, 2048, 1, 2048, 513, 8, 3206 ] --> 30

বুলিয়ান ফর্ম্যাটে এই পরীক্ষাগুলির ক্ষেত্রে আপনি এই লিঙ্কটি অনুসরণ করতে পারেন ।


5
শীতল চ্যালেঞ্জ, এবং গ্রীষ্মে আপনারা যারা এটি চেষ্টা করেননি তাদের জন্য দুর্দান্ত খেলা খেলতে - গ্রিল সহ দুর্দান্ত কাজ করে।
নীট

2
@ নীট আপনাকে ধন্যবাদ। :) আমাকে স্বীকার করতে হবে যে আমি আজ অবধি এই খেলাটি জানতাম না। আমি আজ বিকেলে একটি পার্কে হাঁটার সময় লোকেরা এটি খেলতে দেখেছি। এখন, আমি এটি ব্যবহার করে দেখতে চাই।
আরনাউল্ড

উত্তর:


7

পাইথন 2 , 126 111 108 104 বাইট

-3 বাইট জনাথন অ্যালান ধন্যবাদ

-4 বাইট কেয়া কে ধন্যবাদ!

f=lambda A,t=0:t>50and f(A,25)or A and f(A[1:],t-~(sum(A[0])-1or 762447093078/12**A[0].index(1)%12))or t

এটি অনলাইন চেষ্টা করুন!

একটি পুনরাবৃত্ত ফাংশন সংজ্ঞায়িত করে যা 1 ও 0 এর 2D অ্যারে নেয় এবং পূর্ণসংখ্যার মান দেয়। নির্মাণে খুব বেশি বিশেষ কিছু নেই এবং আমি নিশ্চিত যে এর একটি সহজ সমাধান আছে।

ব্যাখ্যা:

f=lambda A,t=0:    #Define the function, initialising t to 0 on the first iteration
               t>50and f(A,25)      #If t>50 then iterate again with t=25
                              or    #Else
               A and                #If A exists
                     f(A[1:],       #Iterate again without the first list of A
                        t-~         #And add to t, either
                           (sum(A[0])-1   #The sum of all elements if that's not 1
                                         or
                           762447093078/12**A[0].index(1)%12   #Else the appropriate pin value (black magic!)
               or t       #Finally, if A is finished, just return t

(0x103925BA4786>>4*A[0].index(1))%16বনাম 1 অক্ষর সংরক্ষণ করেord('GIHEKLFCJDAB'[A[0].index(1)])-65
কেয়া

1
আরও কিছুটা অনুকূল:762447093078/12**A[0].index(1)%12
কেয়া

সেই জিনিসগুলি আমার কাছে কালো যাদু বলে মনে হচ্ছে! ধন্যবাদ @ কেয়া!
জো কিং

1
এটি কেবলমাত্র 12
এএনডিল

6

জেলি , 25 বাইট

“ñ€bḷ’œ?TLḢṖ?µ€+25¹>?50ɗ/

একটি সংঘবদ্ধ লিঙ্ক যাগুলি এবং শূন্যগুলির দৈর্ঘ্যের প্রতিটি 12) এর তালিকাগুলির তালিকা গ্রহণ করে যা পূর্ণসংখ্যাকে প্রদান করে।

এটি অনলাইন চেষ্টা করুন! অথবা পরীক্ষা-স্যুটটি দেখুন (ওপিতে প্রদত্ত পূর্ণসংখ্যার মানগুলি ব্যবহার করে)

কিভাবে?

এই দ্রষ্টব্যটি ব্যবহার করে, œ?যা একটি সংখ্যা, এন দিয়েছিল এবং একটি তালিকার তালিকার n লিক্সোগ্রাফিকাল ক্রমাঙ্কনটি খুঁজে পায় যেখানে তালিকাটি সাজানোর ক্রমটি নির্ধারণ করে। প্রথমে আমাদের এটির কাজ করা দরকার n:

 index:  1  2  3  4  5  6  7  8  9 10 11 12
 value:  7  9  8  5 11 12  6  3 10  4  1  2   (as defined by the question)
     P: 11 12  8 10  4  7  1  3  2  9  5  6   (our permutation lookup array)

... যে, Pসূচিতে iমান মূল সূচক সেট করা হয় i
এটির Pএকটি অভিধানিক সূচক রয়েছে 438,337,469 (অর্থাৎ, আপনি যদি সমস্ত 12! 1 থেকে 12 সংখ্যাটির ক্রমশক্তি গ্রহণ করেন এবং সেগুলি অভিধানিকভাবে বাছাই করেন, 438,337,469 তম হবে P)।
এটি জেলি এর Œ¿পরমাণু ব্যবহার করে পাওয়া যেতে পারে । জেলি প্রোগ্রামটি ব্যবহার করে
উভয় পদক্ষেপ একযোগে করা যেতে পারেĠŒ¿

“ñ€bḷ’œ?TLḢṖ?µ€+25¹>?50ɗ/ - Link: list of lists of zeros and ones
             µ€           - perform the monadic chain to the left for €ach list:
“ñ€bḷ’                    -   base 250 number = 438337469
      œ?                  -   nth permutation (reorder the 1s and 0s to their pin values)
        T                 -   truthy indices (get the pin values of the 1s)
            ?             -   if...
           Ṗ              -   ...condition: pop (length greater than 1 ?)
         L                -   ...then: length (the number of pins)
          Ḣ               -   ...else: head (the first (& only) pin value)
                        / - reduce the resulting list of integers with:
                       ɗ  -   last three links as a dyad:
               +          -     addition (add the two values together)
                     50   -     literal fifty
                    ?     -     if...
                   >      -     ...condition: greater than (sum greater than 50 ?)
                25        -     ...then: literal twenty-five
                  ¹       -     ...else: identity (do nothing - just yield the sum)

আমি মনে করি যে সমস্ত অনুক্রমের মধ্যে যথাযথ লিক্সোগ্রাফিকাল সূচক সন্ধানের বিষয়ে আপনার ব্যাখ্যাটি জেলি টিপ হিসাবে যুক্ত করার মতো হবে । (শেষবারের মতো আমাকে যখন এটি করতে হয়েছিল, আমি একটি ম্যানুয়াল দ্বৈতত্ত্বীয় অনুসন্ধান করেছি যা সংক্ষিপ্ত সিকোয়েন্সগুলির জন্য এত দীর্ঘ নয় তবে ... কাহিনীকর ক্লান্তিকর ^^)
আর্নল্ড

হাঃ হাঃ হাঃ; দুটি ভিন্ন বাইট বাদে আমার ঠিক একই সমাধান ছিল : -> , µ-> Ʋ। জেলি সত্যিই একটি niladic লিংক acceppting থেকে উপকৃত হবে ¡এর <link>(প্রথম যুক্তি), যে ব্যতীত, যদি খুব, প্রোগ্রাম শুরু বিশেষ-আবরণ আচরণ রাখা।
এরিক আউটগল্ফার

... এবং আমি প্রায় উভয় ব্যবহার!
জোনাথন অ্যালান

5

পাইথন 2 , 90 বাইট

জো কিং এর পাইথন 2 উত্তরের দ্বারা ভারীভাবে অনুপ্রাণিত হয়ে কেয়ার বেস -12 উপস্থাপনা মন্তব্যটি ব্যবহার করেছেন

t=0
for v in input():t+=sum(v)-1or 762447093078/12**v.index(1)%12;t=[t+1,25][t>49]
print t

এটি অনলাইন চেষ্টা করুন! অথবা পরীক্ষা-স্যুটটি দেখুন


4

পাইথ, 51 48 38 বাইট

VQI>=+Z?qJsN1@.PC"îO&"S12xN1J50=Z25;Z

বোলিয়ানদের তালিকার তালিকা হিসাবে জোনাথন অ্যালানকে ইনপুট নেয় 10 টি বাইট সংরক্ষণ করা।
এখানে চেষ্টা করুন

ব্যাখ্যা

VQI>=+Z?qJsN1@.PC"îO&"S12xN1J50=Z25;Z
VQ                                  ;     For each input...
    =+Z                                   ... add to the total...
       ?q sN1                             ... if one pin is down...
             @.PC"îO&"S12xN1              ... the score of that pin.
         J                    J           ... otherwise, the count.
  I>                           50         If we pass 50...
                                 =Z25     ... reset to 25.
                                     Z    Output the total.

প্রোগ্রামে এটি কীভাবে পাবেন তা নিশ্চিত নন, তবে আপনি যদি পারেন তবে এটি 6 বা 7 বাইট সংরক্ষণ করতে হবে ... 7tT8h4hT12h5h2T4h02-> .PC"îO&"S12- আমার জেলি উত্তরের মতো লেকসোগ্রাফিকাল অনুচ্ছেদ সূচি ব্যবহার করে। (স্ট্রিংয়ের শুরুতে কোডটি 0x0F এর একটি ছাপছাড়া বাইট রয়েছে))
জোনাথন অ্যালান

))হতে পারে;
জোনাথন অ্যালান

4

05 এ বি 1 ই , 29 28 বাইট

v•CÞŸαLć•13вyOΘmyÏOO25‚¬50›è

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

v                              # for each boolean list in input
 •CÞŸαLć•                      # push 13875514324986
         13в                   # convert to a list of base-13 numbers
            yO                 # push the sum of y
              Θm               # truthify and raise the pin-list to this number (0 or 1)
                yÏ             # keep those which are true in the current list
                  OO           # sum the list and the stack
                    25‚        # pair with 25
                       ¬50›    # check if the first number is larger than 50
                           è   # index into the pair with this result


3

হাস্কেল , 96 বাইট

foldl(\s a->([s..50]++e)!!sum(last$zipWith(*)[7,9,8,5,11,12,6,3,10,4,1,2]a:[a|sum a>1]))0
e=25:e

এটি অনলাইন চেষ্টা করুন!

মোড়ক চতুর: আমি মূলত s+sum(…)তালিকায় অবস্থানের সূচক ([0..50]++cycle[25])। যাইহোক, লেখার জন্য একটি ছোট উপায় অবস্থানটিতে সূচীকরণ sum(…)এবং তালিকাটি শুরু করা s


3

জাভা 10, 131 130 129 বাইট

m->{int r=0,i,s,t;for(var a:m){for(i=s=t=0;i<12;s+=a[i++])t=a[i]>0?"    \n".charAt(i):t;r+=s<2?t:s;r=r>50?25:r;}return r;}

10 টি অপ্রিন্টেবল রয়েছে।
শূন্য এবং এর পূর্ণসংখ্যার-ম্যাট্রিক্স হিসাবে ইনপুট।

-1 বাইট ধন্যবাদ জোনাথান ফ্রেচকে , \tআসল ট্যাবে রূপান্তরিত করে (টিআইওতে কাজ করে, আমার স্থানীয় আইডিইতে কাজ করে না)।

এটি অনলাইনে চেষ্টা করুন।

ব্যাখ্যা:

m->{                // Method with integer-matrix parameter and integer return-type
  int r=0,          //  Result-integer, starting at 0
      i,s,t;        //  Temp integers
  for(var a:m){     //  Loop over the integer-arrays of the input
    for(i=s=t=0;    //   Reset `i`, `s` and `t` to 0
        i<12;       //   Loop `i` in the range [0,12)
        s+=a[i++])  //    Increase `s` by the current value (0 or 1)
      t=a[i]>0?     //    If the current value is 1:
         "  \n".charAt(i)
                    //     Set `t` to the score at this position
        :t;         //    Else: Leave `t` the same
    r+=s<2?         //   If only a single pin was hit:
        t           //    Add its score `t` to the result
       :            //   Else:
        s;          //    Add the amount of pins `s` to the result
    r=r>50?         //   If the result is now above 50
       25           //    Penalize it back to 25
      :r;}          //   If not, it stays the same
  return r;}        //  Return the result

আমি মনে করি আপনি প্রকৃত ট্যাব অক্ষরটি ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেন "\t\n"
জোনাথন ফ্রেচ 10

@ জোনাথনফ্রেচ হুম, সত্যিই মনে হচ্ছে টিআইওতে কাজ করবে। আমার
আইডিইতে

যখন কোথাও কোনও কাজের বাস্তবায়ন হয়, তখন এটি অনুমোদিত হয়। : @
জোনাথন ফ্রেচ

2

কাঠকয়লা , 43 বাইট

≔⁰ηFθ«≧⁺⎇⊖ΣιΣι⌕᧔$|#z⁸Ug⊗”⌕ι¹η¿›η⁵⁰≔²⁵η»Iη

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। বুলিয়ান অ্যারে হিসাবে ইনপুট নেয়। ব্যাখ্যা:

≔⁰η

স্কোর 0 তে সেট করুন।

Fθ«

নিক্ষেপ উপর লুপ।

⎇⊖Σι

পিনের সংখ্যা কি 1?

Σι

যদি না হয় তবে পিনের সংখ্যাটি নিন।

⌕᧔$|#z⁸Ug⊗”⌕ι¹

অন্যথায়, পিনের অবস্থানটি একটি মানটিতে অনুবাদ করুন।

≧⁺...η

এটি স্কোর যোগ করুন।

¿›η⁵⁰≔²⁵η

যদি স্কোর 50 এর বেশি হয় তবে এটিকে 25 এ সেট করুন।

»Iη

সমস্ত ছোঁড়ার পরে চূড়ান্ত ফলাফল মুদ্রণ করুন।


2

হাস্কেল , ১১০ বাইট

m s|sum s==1=sum$zipWith(*)[7,9,8,5,11,12,6,3,10,4,1,2]s|1>0=sum s
f l=foldl(\b->c.(b+).m)0l
c a|a>50=25|1>0=a

একই দৈর্ঘ্য: এর f l=foldl(\b a->last$b+m a:[25|b+m a>50])0lপরিবর্তে fএবংc

এটি অনলাইন চেষ্টা করুন!


L টি আর্গুমেন্টটি 3 বাইটের জন্য এফ করুন। f=foldl(\b->c.(b+).m)0
এওমিকা

2

হুশ , 47 35 বাইট

-১২ বাইটস এইচ.পি.উইজকে ধন্যবাদ জানায় (তালিকাটি এনকোডিং পয়েন্ট তৈরি করার আরও ভাল উপায়)!

F₅0
S?25>50+?←Lε`f`+Nm+3d4652893071

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

F₅0  -- input is a list of boolean lists
F    -- left fold by
 ₅   -- | the function flipped (overflowing label) on line 1
  0  -- | with initial value 0

S?25>50+?←Lε`f`+Nm+3d4652893071  -- example inputs: [0,0,0,1,0,0,0,0,0,0,0,0] 0
                     4652893071  -- integer literal: 4652893071
                    d            -- digits: [4,6,5,2,8,9,3,0,7,1]
                 m+3             -- map (+3): [7,9,8,5,11,12,6,3,10,4]
              `+N                -- append natural numbers: [7,9,8,5,11,12,6,3,10,4,1,2,3,...
            `f                   -- filter this list by argument: [5]
        ?  ε                     -- if it's of length 1
         ←                       -- | take first
          L                      -- | else the length
                                 -- : 5
       +                         -- add to argument: 5
 ?  >50                          -- if the value is > 50
  25                             -- | then 25
S                                -- | else the value
                                 -- : 5

কীভাবে m+3d4652893071?
এইচ.পি.উইজ

1

লাল , 189 172 বাইট

func[b][s: 0 foreach c b[d: 0 foreach e c[if e = 1[d: d + 1]]i: find c 1
n: either i[pick[7 9 8 5 11 12 6 3 10 4 1 2]index? i][0]if 50 < s: s + either 1 < d[d][n][s: 25]]s]

এটি অনলাইন চেষ্টা করুন!

অবারিত কোডের ব্যাখ্যা:

f: func[b][                                            ; a block of blocks of booleans
    s: 0                                               ; sets sum to 0
    foreach c b[                                       ; for each row of booleans 
        d: 0 foreach e c[if e = 1[d: d + 1]            ; count the number of 1s         
        i: find c 1                                    ; the index of the first 1
        n: either i[pick [7 9 8 5 11 12 6 3 10 4 1 2]  ; if there is 1, pick the number
                    index? i][0]                       ; at the index of 1
                                                       ; otherwise 0  
        if 50 < s: s + either 1 < d[d][n][s: 25]       ; if there is only one 1, add 
                                                       ; the number to the sum, otherwise
                                                       ; the number of 1s 
                                                       ; if the sum > 50, reset it to 25 
    ]
    s                                                  ; return the sum 
]

1

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

a=>a.map(b=>b.map((m,i)=>(c+=m,d+=m*('0x'+'7985bc63a412'[i])),c=d=0)|(t+=c>1?c:d)>50?t=25:0,t=0)|t

পরীক্ষার কেস:


আমার রেফারেন্স বাস্তবায়ন হিসাবে একই আকার (এবং এর সাথে খুব মিল) । :)
আর্নল্ড

আহ, দুর্দান্ত। আমি যখনই আপনার কোড আকারের সাথে মেলাতে পারি তখন আমি খুশি। এটি কেবল একবার নীল চাঁদে আছে যে আমি এটি পরাজিত করতে পারি :)
রিক হিচকক 20

0

স্ট্যাক্স , 37 বাইট

├T<↓"♥←~;▌6»≥øF←î5░U╚_π○Q▒<│∟└ù║pε♀▀æ

এটি চালান এবং এটি ডিবাগ করুন

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

F:1"=EA5MQ9-I1%)"!s@c%1={h+}{%+}?c50>{d25}{}?    # Full program, unpacked

F                                                # Loop through every element
 :1                                              # Get indices of truthy elements
   "=EA5MQ9-I1%)"!                               # Push encoded [7,9,8,5,11,12,6,3,10,4,1,2]
                 s@                              # Swap the top 2 elements of stack and get elements at indexes
                   c%1=                          # Copy the top element, get length of array, compare to length of 1
                       {h+}{%+}?                 # If it has length of 1, add the element, otherwise add the length of the array to total
                                 c50>            # Compare total to 50, 
                                     {d25}{}?    # If it is greater, pop it off and push 25 to reset counter, otherwise do nothing

আমার সেরা কাজ নয়, তবে এটি কাজ করে। আমি নিশ্চিত যে এটির কিছুটা খাটো করার জন্য আমি অনুপস্থিত রয়েছি।


0

Python 2, 109 105 103 bytes

c=0
for l in input():a=sum(l);c+=int('7985bc63a412'[l.index(1)],16)if a==1else a;c=(25,c)[c<51]
print c

Try it online!

Alternative without a recursive function.

-2 with thanks to @Jo King


You can remove the brackets around the string literal
Jo King
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.