যতটা সম্ভব মন্দ হতে


16

ভূমিকা

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

আপনি অন্যকে বলতে যাচ্ছেন যে আপনি নিজের ভাইবালির মতো যথাসম্ভব ন্যায্য হতে চান এবং এভাবে আপনি পূর্ণসংখ্যকে সমান দৈর্ঘ্যের টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো করে বিভক্ত করতে যাচ্ছেন। সুতরাং প্রতিটি পূর্ণসংখ্যার জন্য আপনি সঠিক পরিমাণে লোকের সাথে উপস্থিত হবেন যে বৃহত্তম এবং ক্ষুদ্রতম অংশের মধ্যে পার্থক্য সর্বাধিক।

উদাহরণস্বরূপ, আপনি যদি পূর্ণসংখ্যা দেওয়া হয় তবে আপনি 6567এটি যেমন রেখে দিতে পারেন, এটি দুটি টুকরো 65,67বা চার ভাগে ভাগ করুন 6,5,6,7। এটি আপনাকে নিম্নলিখিত সর্বাধিক পার্থক্য দেয়:

6567    -> max() = 0
65,67   -> max(|65-67|) = 2
6,5,6,7 -> max(|6-5|,|6-5|,|6-6|,|6-7|,|5-6|,|5-7|,|6-7|) = 2

যেহেতু আপনি শুধুমাত্র মন্দ হতে চান আপনি পছন্দ না 67ধরে 7এবং এইভাবে আপনি হবে আউটপুট পারেন 2বা 4


আরেকটি (কম বিশেষ ক্ষেত্রে); পূর্ণসংখ্যা দেওয়া হলে 121131আপনি এটি এভাবে ভাগ করতে পারেন:

121131      -> max() = 0
121,131     -> max(|121-131|) = 10
12,11,31    -> max(|12-11|,|12-31|,|11-31|) = 20
1,2,1,1,3,1 -> max(…) = 2

এবার কেবল একটিই সমাধান রয়েছে - যথা 3- তিন জনের সাথে পার্থক্য সর্বাধিক।

চ্যালেঞ্জ

একটি পূর্ণসংখ্যা দেওয়া সর্বাধিক মন্দ হওয়ার কোনও সম্ভাব্য উপায় নির্ধারণ করে এবং এটি অর্জনের জন্য প্রয়োজনীয় লোকের সংখ্যা রিপোর্ট করে ।

বিধি

  • ইনপুট সর্বদা ≥ 1 হবে
  • ইনপুট হয় হয় পূর্ণসংখ্যা, অঙ্কের তালিকা বা স্ট্রিং
  • আপনাকে অবৈধ ইনপুটগুলি পরিচালনা করতে হবে না

Testcases

আপনার কেবলমাত্র প্রয়োজনীয় ব্যক্তির ফলাফলের প্রতিবেদন করতে হবে, সম্ভাব্য পার্টিশনগুলি কেবল উদাহরণের জন্য:

In -> splits (difference) -> Out
1 -> [1] (0) -> 1
10 -> [1,0] (1) -> 2
11 -> [11] or [1,1] (0) -> 1 or 2
12 -> [1,2] (1) -> 2
42 -> [4,2] (2) -> 2
101 -> [1,0,1] (1) -> 3
2222 -> [2222] or [22,22] or [2,2,2,2] (0) -> 1 or 2 or 4
6567 -> [65,67] or [6,5,6,7] (2) -> 2 or 4
123000 -> [123,000] (123) -> 2
123001 -> [123,001] (122) -> 2
121131 -> [12,11,31] (20) -> 3
294884 -> [294,884] (590) -> 2
192884729 -> [192,884,729] (692) -> 3
123456189012 -> [123456,189012] (65556) -> 2
123457117346 -> [1234,5711,7346] (6112) -> 3

1
আমি ভাবছি যদি কেউ প্রোগ্রামিং ল্যাঙ্গুয়েজে কোনও সমাধান জমা দেবে? : ডি
এস কে

উত্তর:


5

জেলি ,  16  14 বাইট

Ṁ_Ṃ
sLÆD$ḌÇÞṪL

একটি মোনাডিক লিঙ্কটি পূর্ণসংখ্যার (অঙ্কগুলি) তালিকা নিয়ে এবং পূর্ণসংখ্যা ফেরত দেয়।

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

কিভাবে?

Ṁ_Ṃ - Link 1, maximal difference: list of numbers
Ṁ   - maximum
  Ṃ - minimum
 _  - subtract

sLÆD$ḌÇÞṪL - Main link: list of numbers, theDigits  e.g. [1,2,3,0,0,1]
    $      - last two links as a monad:
 L         -   length                                    6
  ÆD       -   divisors                                  [1,2,3,6]
s          - split into chunks (vectorises)              [[[1],[2],[3],[0],[0],[1]],[[1,2],[3,0],[0,1]],[[1,2,3],[0,0,1]],[[1,2,3,0,0,1]]]
     Ḍ     - from decimal (vectorises)                   [[1,2,3,0,0,1],[12,30,1],[123,1],[123001]]
       Þ   - sort by:
      Ç    -   call last link (1) as a monad              3             29        122     0
           -                                         ... [[123001],[1,2,3,0,0,1],[12,30,1],[123,1]]
        Ṫ  - tail                                        [123,1]
         L - length                                      2

হ্যাঁ, আমি জানি আপনি পাইথকে জানেন না! +1 কারণ জেলি মনগুলি একই চিন্তা করে! খুব খারাপ ŒṖএবং ./উভয়ই লম্বা
মিঃ এক্সকোডার


4

05 এ বি 1 ই , 12 বাইট

gDÑΣôDδαà}θ÷

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

05 এ বি 1 ই , 12 বাইট

gDÑΣôàsß-}θ÷

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

কিভাবে এটা কাজ করে

gDÑΣôDδαà} θ ÷ | পুরো প্রোগ্রাম।

ছ | দৈর্ঘ্য (অঙ্কের গণনা)।
 ডি | সদৃশ (দৈর্ঘ্যের দুটি কপি স্ট্যাকের দিকে চাপুন)।
  Ñ ​​| বিভাজনগুলি (স্ট্যাকের শীর্ষে) পান।
   ।} | একটি মূল ফাংশন অনুসারে বাছাই করুন।
-------------------------------------------------- ------------
    .Dδαà | কী ফাংশন # 1।
    ô | Size আকারের অংশে (ইনপুট) বিভক্ত করুন।
     ডি | প্রতিলিপি.
      δα | পরম পার্থক্য বাহ্যিক পণ্য।
        à | সর্বাধিক পান।
    ßসß- | কী ফাংশন # 2 (বিকল্প)।
    ô | Size আকারের অংশে (ইনপুট) বিভক্ত করুন।
     à | সর্বোচ্চ।
      s | শীর্ষ দুটি উপাদান অদলবদল করুন।
       ß | নূন্যতম।
        - | বিয়োগ।
-------------------------------------------------- ------------
          । ÷ | কাস্টম বাছাই করে সর্বাধিক উপাদান দ্বারা দৈর্ঘ্য ভাগ করুন।

05AB1E এই চ্যালেঞ্জের জন্য অবিশ্বাস্যরূপে ক্ষুদ্র।


4

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

3 বাইট সংরক্ষিত হয়েছে @ এডক 65 এর জন্য ধন্যবাদ

স্ট্রিং হিসাবে ইনপুট নেয়।

f=(s,k=l=s.length,m)=>k?f(s,k-1,l%k||(d=Math.max(...a=s.match(eval(`/.{${l/k}}/g`)))-Math.min(...a))<m?m:(r=k,d)):r

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


1
আপনি কি রেজিপ্যাক্সের পরিবর্তে ইওল চেষ্টা করেছিলেন?
edc65

@ edc65 আমি সেটার কথা ভুলে যাচ্ছি। ধন্যবাদ!
আরনাউল্ড




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