নির্বাচনে কে জিতবে?


32

এটি একটি চ্যালেঞ্জ, যেখানে ১ এবং ২ নামে দুজন ব্যক্তি অফিসে প্রার্থী হচ্ছেন। জনগণ নির্বিশেষে 1 ও 2 এর বিশ্বে নির্দিষ্ট উপায়ে ভোট দেয়, যা প্রার্থীদের নির্বাচনের আগে ফলাফলগুলি বের করার সুযোগ দিতে পারে।

দ্রষ্টব্য: এটি বাইরের কোনও নির্বাচন বা অন্যান্য রাজনৈতিক ইভেন্টগুলি উল্লেখ করার জন্য নয়।

দু'জন অফিসে প্রার্থী হচ্ছেন। আমরা এই লোকগুলিকে 1 এবং 2 বলব কারণ তারা দুজনেই জানতে চান যে তারা নির্বাচনে জিতবে কিনা, ফলে তারা কী হবে তা জানার জন্য তাদের জ্ঞান এবং কিছু কোড ব্যবহার করার সিদ্ধান্ত নিয়েছে decide সরকারী ব্যয়কে হ্রাস করতে চাওয়ার কারণে কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া দরকার।

আপনার কাজ: লোকেরা কীভাবে ভোট দিচ্ছে তার ভিত্তিতে একটি স্ট্রিং দেওয়া হয়েছে, নির্বাচনে কে জিতবে আউটপুট।

মজাদার এবং উত্তেজনাপূর্ণ বিশ্বে 1 এবং 2 এর মধ্যে পাঁচ ধরণের লোক রয়েছে:

  • A: লোকেরা অবশ্যই ভোট দেবে 1।
  • B: এমন লোকেরা যারা অবশ্যই ভোট দিবে 2।
  • X: এমন লোকেরা যারা তাদের বাম দিকের ব্যক্তিকে ভোট দেবে তাকে ভোট দেবে। যদি তাদের বাম দিকে কোনও ব্যক্তি না থাকে, তবে তারা ডানদিকে যে ব্যক্তি তাকে ভোট দেবে তার পক্ষে তারা ভোট দেয়। যদি এই বিষয়টি স্পষ্ট না হয় যে তাদের অধিকারের ব্যক্তিটি কাকে ভোট দিচ্ছেন, তবে তারা ভোট দেয় না।
  • Y: লোকেরা তার বাম দিকে ব্যক্তির বিপরীতে ভোট দেবে। যদি তাদের বাম দিকে কোনও ব্যক্তি না থাকে তবে তারা যার ডানদিকে থাকবে তার বিপরীতে ভোট দেয়। যদি এই বিষয়টি স্পষ্ট না হয় যে তাদের অধিকারের ব্যক্তিটি কাকে ভোট দিচ্ছেন, তবে তারা ভোট দেয় না।
  • N: ভোট দেয় না এমন লোক।

এটি বাম থেকে ডানে মূল্যায়ন করা হয়।

উদাহরণ:

যার "মূল্যায়ন" করা হচ্ছে সে স্পষ্টতার জন্য ছোট হাতের অক্ষরে।

Input: `XXAYAN`
        xX      Votes for whoever their friend is voting for. Their friend has not decided yet, so it is unclear, so they do not vote.
        Xx      Person to left is voting "none" so votes "none."
          a     Votes for 1
          Ay    Since person on left is voting for 1, votes for 2.
            a   Votes for 1
             n  Does not vote

চূড়ান্ত পোল:

  • 2 জন ভোট দিয়েছেন 1 জনকে

  • 1 জন 2 জনকে ভোট দিয়েছেন

  • ৩ জন ভোট দেয়নি

1 টিতে সবচেয়ে বেশি ভোট রয়েছে, তাই 1 টি জয়!

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

আপনি অন্যান্য অক্ষর বা মানগুলি ইনপুট এবং আউটপুট হিসাবে ব্যবহার করতে পারেন, যতক্ষণ না সেগুলি পৃথক। (উদাহরণস্বরূপ: বর্ণগুলির পরিবর্তে সংখ্যা, বিভিন্ন বর্ণ, ছোট হাতের অক্ষর, সত্য / মিথ্যা বা ধনাত্মক / নেতিবাচক (আউটপুট জন্য), ইত্যাদি)

Input -> Output

"AAAA" -> 1
"BBBB" -> 2
"BBAXY" -> 2
"BAXYBNXBAYXBN" -> 2
"XXAYAN" -> 1
"AAAABXXXX" -> 2
"AXNXXXXAYB" -> 1
"NANNY" -> 1
"XA" -> 1
"YAB" -> 2
"XY" -> anything (do not need to handle test cases with no victor)
"AB" -> anything (do not need to handle test cases with no victor)

1
@ এরিকথ আউটগল্ফার এএনএনওয়াই ঠিক একটি এনএন এর সমান। এনএক্স এবং এনওয়াই এনএন হয়ে যায়।
কমরেড স্পার্কলপনি

5
মন্তব্যগুলিতে আচরণটি সঠিক হলে এটি noneবিপরীত বলে উল্লেখযোগ্য worth noneNY
কামিল দ্রাকারী

1
এই প্রোগ্রামটিতে সেখানে উচিত testcases শুরু XA, XB, YAএবং YB
নীল

1
ইনপুটটিতে কেবলমাত্র 1 টি বর্ণ থাকতে পারে? যেমন "এ", "এক্স", "ওয়াই", "এন"।
tsh

2
আউটপুটটি কি দুটি স্বতন্ত্র মান হতে পারে , বা আমরা উদাহরণস্বরূপ 1 জিতলে কোনও ধনাত্মক পূর্ণসংখ্যার এবং 2 জয় হলে কোনও নেতিবাচক পূর্ণসংখ্যার আউটপুট দিতে পারি?
কেভিন ক্রুইজসেন

উত্তর:


9

পার্ল 5, 56 80 72 65 53 বাইট

প্রথম অবস্থানে X বা Y এবং দ্বিতীয়টিতে A বা B কেস পরিচালনা করতে +26 বাইট। 1অন্যথায় যদি 1 টি জয় খালি (মিথ্যা মান) পার্টপুট হয় তবে আউটপুট ।

s/^X(.)/$1$1/,s/A\KX|B\KY|^Y(?=B)/A/|s/B\KX|A\KY|^Y(?=A)/B/&&redo;$_=y/A//>y/B//

Tio

ব্যবহার Pএবং Sপরিবর্তে Xএবং Yঅক্ষর উপর XOR অপারেশন ব্যবহার করার অনুমতি দেয়, আরো কিছু বাইট বাঁচাতে হবে

s/(?|^(P|S)(?=(A|B))|(A|B)\K(P|S))/P^$1^$2/e&&redo;$_=y/A//>y/B//

একটি ব্রাঞ্চ রিসেট গ্রুপ ব্যবহার করে (?|.. |.. ), যাতে $1 $2শাখায় সংশ্লিষ্ট গোষ্ঠীটিকে রিফ্রিং করে। ব্যবহার করে \0এবং এর \3পরিবর্তে XএবংY

$_=s/^\W(?=(\w))|(\w)\K\W/$1.$2^$&/e?redo:y/A//>y/B//

72 বাইট

65 বাইট

53 বাইট


আমার শেষ বোঝাপড়া থেকে তাদের আর গণ্য করা হয় না
নাহুয়েল ফুইলুল

এই সঠিকভাবে হ্যান্ডেল নেই Xএবং Yস্ট্রিং শুরুতে। চেষ্টা করুন XBAএবং YAB
গ্রিমি

@ গ্রিমি, আপডেট
নাহুয়েল ফিউইলুল

9

জাভা 8, 153 141 135 131 129 বাইট

a->{int l=a.length,t,r=0,i=-1;for(;++i<l;r+=(t=a[i]=a[i]>4?t<3?t^3:3:a[i]>3?t:a[i])>2?0:3-t*2)t=a[i>0?i-1:i<l-1?i+1:i];return r;}

একটি পূর্ণসংখ্যার অ্যারের সাথে ইনপুট হিসাবে ব্যবহার করে A=1, B=2, N=3, X=4, Y=5এবং >= 1যদি জয়ী হয় তবে ইতিবাচক পূর্ণসংখ্যা ( ) <= -1বি, যদি বি জেগে থাকে তবে negativeণাত্মক পূর্ণসংখ্যার ( ) আউটপুট দেয় বা 0যদি এটি ড্র হয়।

-18 বাইটস @ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ জানায়

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

ব্যাখ্যা:

a->{                      // Method with int-array parameter and boolean return-type
  int l=a.length,         //  Length of the input-array
      t,                  //  Temp integer, uninitialized
      r=0,                //  Result-integer, starting at 0
  i=-1;for(;++i<l         //  Loop `i` in the range [0, l):
           ;              //    After every iteration:
            r+=           //     Increase the result by:
             (t=a[i]=     //       Change `i`'th item in the array to:
                 a[i]>4?  //        If the `i`'th item is a 5:
                  t<3?    //         If `t` is 1 or 2:
                   t^3    //          Use `t` Bitwise-XOR 3 to invert it
                          //          (1 becomes 2; 2 becomes 1)
                  :       //         Else (`t` is 3, 4, or 5 instead):
                   3      //          Set it to 3
                 :a[i]>3? //        Else-if the `i`'th item is a 4:
                  t       //         Set it to `t`
                 :        //        Else (the `i`'th item is a 1, 2 or 3):
                  a[i])   //         Leave it unchanged
             )>2?         //      And if this new `i`'th value is 3, 4, or 5:
              0           //       Leave the result the same by increasing it with 0
             :            //      Else (it's 1 or 2 instead):
              3-t*2;      //       Increase it by 3 minus two times the `i`'th value
                          //       (which is 1 for 1; and -1 for 2)
         t=               //   Set `t` to:
           a[i>0?         //    If `i` is not the first item:
              i-1         //     Set `t` to the previous (`i-1`'th) value
             :i<l-1?      //    Else-if `i` is not the last item:
              i+1         //     Set `t` to the next (`i+1`'th) value
             :            //    Else (`i` is the first or last item):
              i];         //     Set `t` to the current item itself
  return r;}              //  Return the result
                          //  (positive if A wins; negative if B wins; 0 if it's draw)

i=0;for(int n:a)i+=n<2?1:n<3?-1:0;return i>0;কয়েক বাইট বাইট সংরক্ষণ করে।
অলিভিয়ার গ্রাগোয়ার

1
আসলে, i=0;for(int n:a)i+=n>2?0:3-n*2;return i>0;এমনকি আরও খাটো।
অলিভিয়ার গ্রাগোয়ার

@ অলিভিয়ারগ্রোওয়ের ধন্যবাদ! আমি যখন আপনার প্রথম মন্তব্যটি দেখেছি তখন আমি আরও ছোট একটি সন্ধান করতে যাচ্ছিলাম, তবে আপনি আপনার দ্বিতীয় মন্তব্যে আমাকে এতে মারধর করেছেন। ;)
কেভিন ক্রুইজসেন

1
প্রথম একের মধ্যে দ্বিতীয় লুপটি মার্জ করে 131 বাইট । যদিও এটি সঠিক মনে হচ্ছে না, এবং কয়েকটি পরীক্ষার কেস যুক্ত করা যেতে পারে ...
অলিভিয়ার গ্রাগোয়ার

@ অলিভিয়ারগ্রোওয়ের ধন্যবাদ! টেম্পের ভেরিয়েবলের সাথে আরও কিছু সংযুক্ত করে আরও 4 বাইট গল্ফ তৈরি করতে সক্ষম হয়েছি। এবং এটি সম্পর্কে ভুল মনে হয়? আপনি যদি লুপটির System.out.println(java.util.Arrays.toString(a));পরে একটি যোগ করেন তবে আপনি দেখতে পাবেন এটি পরিবর্তিত হতে পারে যেমনটি আপনি প্রত্যাশা করেন (imo)। কোন ধরণের পরীক্ষার ক্ষেত্রে আপনি কী ভুল ফলাফলের ফলাফল এবং কোডটির কোন অংশের কারণে মনে করবেন?
কেভিন ক্রুইজসেন

8

হাস্কেল, 60 50 48 59 বাইট

l#(v:o)|v<2=v+v#o|n<-(3-v)*l=n+n#o
_#_=0
f x=rem(x!!1)2#x>0

ব্যবহার 1জন্য A, -1জন্য B, 0জন্য N, 2জন্য Xএবং 4জন্য Y। রিটার্নস Trueযদি Aজয়ী, অন্য False

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

ইনপুট তালিকাটি পুনরাবৃত্তির পথে আমরা 1প্রতিটি ভোটের জন্য A, -1প্রতিটি ভোটের জন্য Bএবং 0"কোনও ভোট নেই" এর জন্য যুক্ত করি। lশেষ ভোট, vপরেরটি। যদি v=1, -1বা 0(বা v<2) আমরা কেবল এটি যোগে যোগ করি। যদি v"ভোট সমান" হয় ( Xচ্যালেঞ্জের ক্ষেত্রে, 2আমার সমাধানের জন্য) আমরা রাখি এবং যুক্ত করি l( (3-2)*l= l)। যদি v"ভোটের বিপরীতে" হয় ( Yচ্যালেঞ্জের ক্ষেত্রে, 4আমার সমাধানের জন্য) আমরা প্রথমে প্রত্যাখ্যান করি l( (3-4)*l= -l) এবং তারপরে এটি যুক্ত করব। বেস কেসটি খালি তালিকা যা দিয়ে যোগফল শুরু হয় 0। পুনরাবৃত্তি যেখানে lসেট সঙ্গে শুরু হয়rem s 2sইনপুট তালিকার দ্বিতীয় উপাদান ( x!!1)। rem s 2মানচিত্র 1এবং -1নিজেই, অন্যান্য সমস্ত মান 0। ভোটগুলি lযেভাবেই হোক উপেক্ষা করুন [*] এবং Xবা Yসঠিক ভোট যদি সঠিক প্রতিবেশী হন। সামগ্রিক যোগফল যদি ইতিবাচক হয় তবে Aজয়ী হয়।

[*] এটি [1]কাজের মতো স্থির ভোটের সাথে সিঙ্গেলটন তালিকা তৈরি করে , কারণ হাস্কেলের আলস্যতার কারণে দ্বিতীয় উপাদানটিতে অ্যাক্সেসের মূল্যায়ন হয় না। ইনপুটগুলি [2]ত্রুটির সাথে ব্যর্থ হয় তবে তা বিবেচনা করার দরকার নেই।



1
@ গ্রিমি: দেখানোর জন্য ধন্যবাদ। সংশোধন করা হয়েছে।
নিমি


4

05 এ বি 1 ই , 34 33 32 30 বাইট

gFÐNè©2@iNx1.S-èDÄ2‹*D(‚®èNǝ]O

একটি পূর্ণসংখ্যা-অ্যারের সাথে ইনপুট হিসাবে ব্যবহার করে A=-1, B=1, N=0, X=2, Y=3এবং <= -1A জিতলে একটি নেতিবাচক পূর্ণসংখ্যার ( ) আউটপুট দেয় , >= 1বি জয়ী হলে ধনাত্মক পূর্ণসংখ্যা ( ) বা 0এটি যদি একটি ড্র হয়।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

g             # Take the length of the (implicit) input-list
              #  i.e. [3,1,3,3,2,0,1] → 7
 F            # Loop `N` in the range [0, length):
  Ð           #  Triplicate the list at the top of the stack
              #  (which is the implicit input-list in the first iteration)
   Nè         #  Get the `N`'th item of the list
              #   i.e. [3,1,3,3,2,0,1] and `N`=0 → 3
              #   i.e. [-1,1,-1,3,2,0,1] and `N`=3 → 3
     ©        #  Store it in the register (without popping)
   2@i        #  If it's larger than or equal to 2 (so either 2 or 3):
      Nx      #   Push `N` and `N` doubled both to the stack
              #    i.e. `N`=0 → 0 and 0
              #    i.e. `N`=3 → 3 and 6
        1.S   #   Compare the double integer with 1 (-1 if N*2<1; 0 if N*2==1; 1 if N*2>1)
              #   (So this will be -1 in the first iteration, otherwise it will be 1)
              #    i.e. 0 → -1
              #    i.e. 6 → 1
            #   Subtract that from the index, and index it into the list
              #    i.e. `N`=0 and -1 → 1 (first item, so get the next index)
              #     → [3,1,3,3,2,0,1] and 1 → 1
              #    i.e. `N`=3 and 1 → 2 (fourth item, so get the previous index)
              #     → [-1,1,-1,3,2,0,1] and 2 → -1
      D       #   Duplicate that value
       Ä2    #   Check if that value is -1, 0, or 1 (abs(i) < 2) (truthy=1; falsey=0)
          *   #   And multiply that with the value
              #   (remains the same if truthy; or becomes 0 if falsey)
      D(‚     #   Pair it with its negative (-1 becomes [-1,1]; 1 becomes [1,-1])
         ®è   #   And index the `N`'th value (from the register) into it (with wraparound)
              #   (if it was a 2, it uses the unchanged (first) value of the pair;
              #    if it was a 3, it uses the negative (second) value of the pair)
              #     i.e. [1,-1] and 3 → -1
              #     i.e. [-1,1] and 3 → 1
      Nǝ      #   And replace the `N`'th value with this
              #    i.e. [3,1,3,3,2,0,1], `N`=0 and -1 → [-1,1,3,3,2,0,1]
              #    i.e. [-1,1,-1,3,2,0,1], `N`=3 and 1 → [-1,1,-1,1,2,0,1]
 ]            # Close both the if-statement and loop
  O           # Sum the modified list (which now only contains -1, 0, or 1)
              #  i.e. [-1,1,-1,1,1,0,1] → 2

3

রেটিনা 0.8.2 , 70 বাইট

AY
AB
BY
BA
}`(A|B)X
$1$1
^X(A|B)|^Y[AB]
$1$1
+`N|X|Y|AB|BA

.+|(?<=B)

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। 0টাই জন্য আউটপুট । ব্যাখ্যা:

AY
AB
BY
BA

হ্যান্ডেল Yসিদ্ধান্ত নিয়েছে ভোট সঙ্গে মানুষের অধিকার হিসেবে রাখার জন্য ভোটারদের।

}`(A|B)X
$1$1

হাতল Xসিদ্ধান্ত নিয়েছে ভোট সঙ্গে মানুষের অধিকার, সব সম্ভব না হওয়া পর্যন্ত তারপর লুপ পিছনে ভোটারদের Yএবং Xভোট সিদ্ধান্ত নিয়েছে করা যেতে পারে।

^X(A|B)|^Y[AB]
$1$1

ইনিশিয়াল হ্যান্ডেল Xএকটি সিদ্ধান্ত ভোট পাশে ভোটার, এবং এছাড়াও ইনিশিয়াল Yএকটি সিদ্ধান্ত ভোট পাশে ভোটার। এই ভোটার যেমন স্থির ভোটের বিপরীতে ভোট দেবেন, আমরা কেবলমাত্র এই ক্ষেত্রে উভয় ভোট মুছতে পারি।

+`N|X|Y|AB|BA

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

.+|(?<=B)

1কোনও ভোট থাকলে আউটপুট , তবে 2তারা যদি Bভোট হয়।


3

জাভাস্ক্রিপ্ট (নোড.জেএস) , 42 বাইট

s=>s.map(c=>x+=l=c%2|l*c/2,l=s[x=1]%2)|x>1

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

শেগিকে ধন্যবাদ 1 বাইট সংরক্ষণ করুন।


  • পূর্ণসংখ্যার অ্যারের হিসাবে ইনপুট যেখানে এন = 0, এ = -1, বি = 1, এক্স = 2, ওয়াই = -2;
  • আউটপুট 1 = মিথ্যা, 2 = সত্যবাদী

2
তোমার Tio আউটপুট বলে মনে হয় 0, 1এবং 3পরিবর্তে 1এবং 2?
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুইজসেন তবে ওপি সত্যবাদী বনাম মিথ্যাচারকে আউটপুট হিসাবে অনুমতি দিয়েছে যদি আমি সঠিকভাবে বুঝতে পারি। ফালসি মানে 1 গেমটি জিতেছে, এবং সত্যবাদী মানে 2 জিতেছে।
tsh

আহ ঠিক আছে, ভুলে যাওয়া 3জেএসেও সত্যবাদী। আমি সর্বদা 0/ 1হিসাবে ভুয়া / সত্য বলে মনে করি । এবং যেহেতু আমাদের আর স্বতন্ত্র আউটপুটগুলির প্রয়োজন নেই, 0= 1 জিত এবং >= 1= 2 জয়ের পাশাপাশি ভাল। সুতরাং আমার কাছ থেকে +1
কেভিন ক্রুইজসেন

দেখে মনে হচ্ছে আপনি লজিক্যাল ওআর এর পরিবর্তে বিটওয়াইড OR ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেন।
শেগি

পছন্দ করুন এটা কাজ করে।
tsh

2

পাইথন 3 2, 125 121 117 বাইট

(জোনাথন ফ্রেঞ্চকে ধন্যবাদ)

def f(x):
    for i,v in enumerate(x):n=x[i-(i>0)];x[i]=(v>3)*n+abs(n-1)*(v<0)+x[i]*(0<v<4)
    print x.count(1)>x.count(0)

ট্যাব ইন্ডেন্টেশন ব্যবহার করা হচ্ছে

ইনপুট: তালিকা intগুলি যেখানে 'এ' = 1, 'বি' = 0, 'X = 4,' এন '= 3,' ওয়াই '= - 1, তাই "AAAA" হয় [1, 1, 1, 1]এবং "XXAYAN" হয় [4, 4, 1, -1, 1, 3]

[{'A': 1, 'B': 0, 'X': 4, 'N': 3, 'Y': -1}[c] for c in s] স্ট্রিংগুলি প্রয়োজনীয় ইনপুট ফর্ম্যাটে রূপান্তর করবে।

আপনি এটি অনলাইন চেষ্টা করতে পারেন ! (পরামর্শের জন্য জোনাথন ফ্র্যাচকে ধন্যবাদ)


হ্যালো এবং পিপিসিজিতে আপনাকে স্বাগতম। আমি টিআইও ব্যবহার করার পরামর্শ দেব কারণ এটি আপনার কোডটি দুর্দান্তভাবে ফর্ম্যাট করে। তদুপরি, আমি আপনার ইনপুট ফর্ম্যাটটি বেশ বুঝতে পারি না। আপনাকে ওপিকে এর বৈধতা সম্পর্কে জিজ্ঞাসা করতে হতে পারে।
জনাথন ফ্রেচ

একটি গল্ফিং টিপ হিসাবে, (i, i-1)[i>0]সমতুল্য হওয়া উচিত i-(i>0)
জোনাথন ফ্রেঞ্চ

তদ্ব্যতীত, আপনার ifগুলি সম্ভবত হয়ে উঠতে পারে x[i]+=(v>3)*n+abs(n-1)*(v<0)। তারপরে আপনি এখন নন-যৌগিক স্টেটমেন্টটি (ব্যবহার করে ;) একই লাইনে সরিয়ে ইন্ডেন্টেশন সংরক্ষণ করতে পারেন for
জোনাথন ফ্রেচ

@ জোনাথানফ্রেচ আপনাকে অনেক ধন্যবাদ; আমি আশা করি আমি ইনপুটটি আরও ভালভাবে ব্যাখ্যা করেছি
user24343

1

পার্ল 5, 54 বাইট

s/^\W(?=(\w))|(\w)\K\W/$1^$2^$&/e&&redo;$_=y/A//>y/B//

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

ব্যবহার Aজন্য A, Bজন্য B, Nজন্য N, \0জন্য Xএবং \3ওয়াই জন্য (গত দুই হচ্ছে আক্ষরিক নিয়ন্ত্রণ অক্ষর)। কৌশলটি হ'ল Aবিটওয়াইজ-এক্সোর \3সমান Bএবং বিপরীত।


এটি আমার উত্তরের অনেক ধারণাগুলি ব্যবহার করে, আমি নিশ্চিত ছিলাম না যে আমরা ইনপুট এবং আউটপুট হিসাবে প্রিন্টযোগ্য অক্ষরটি ব্যবহার করতে পারি, ব্যাকস্ল্যাশ অক্ষরের ক্লাসগুলি ব্যবহার করার
সুবিধাটি

1

জাভাস্ক্রিপ্ট (ES6) - 133 বাইট

a=>(i=($=_=>'AB'.search(_)+1)(a[1],o=0),[...a].map(v=>(r=['NAB','NBA']['XY'.search(x)],p=r?r[i]:v,i=$(p),o+='NA'.search(p))),o>0?1:2)

ওপি দেওয়া ফর্ম্যাটের সাথে একটি স্ট্রিং নেয় এবং ফেরৎ 1 যদি প্রার্থী 1 জিতে 2 অন্যথায় (আমি এটা মানা করব, আমি এমনকি-পক্ষপাতমূলক করছি)।


1

পাইথন 2 , 95 73 বাইট

lambda(v):sum([l for l in[2*int(v[1]/2)]for i in v for l in[i*l**(i%2)]])

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


  • পূর্ণসংখ্যার অ্যারের হিসাবে ইনপুট যেখানে এন = 0, এ = -2, বি = 2, এক্স = 1, ওয়াই = -1;
  • আউটপুট নেতিবাচক = এ, 0 = ড্র, ধনাত্মক = বি
  • যদি প্রথম ইনপুটটি এক্স বা ওয়াই হয় তবে 2 * ইনট (ভি [1] / 2) নিজের বা 0 এর পরে মানচিত্র

বাগ ফিক্স প্রয়োজন ছিল যা অতিরিক্ত বাইট যুক্ত করেছিল, তবে @ স্টিফেনকে ল্যাম্বডায় রূপান্তরিত করে এটি আবার 95 এ কমিয়েছে


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