পিপিসি ক্লজ তার উপহারগুলি সরবরাহ করতে সহায়তা করুন!


15

পিপিসিজি ক্লজ তার উপহারগুলি সরবরাহ করতে সহায়তা করুন

সংক্ষিপ্ত বিবরণ

পিপিসিজি ক্লজ দেরীতে হেল্লা চালিয়ে যাচ্ছে তার উপহারগুলি সরবরাহ করার জন্য কারণ আজকাল আমাদের এখানে প্রচুর অদ্ভুত ছোট্ট কিডো রয়েছে। এটি পিপিসিজি ক্লোজের পক্ষে সমস্ত উপহারকে সঠিক জায়গায় পাওয়া খুব শক্ত করে তোলে। আপনার চ্যালেঞ্জ হ'ল তাকে তাঁর উপহারগুলি সঠিকভাবে উদ্ধার করতে সহায়তা করা।

জটিলতা

তিনি যে বাচ্চাদের বিতরণ করতে চান তার প্রতিনিধিত্বকারী মূল নামের একটি তালিকা এবং সংখ্যার দ্বারা উপস্থাপিত উপহারের একটি তালিকা দেওয়া, আপনাকে অবশ্যই শিশুদের মধ্যে কীভাবে উপহারগুলি বিতরণ করবেন তা নির্ধারণ করতে হবে। অবশ্যই একটি ধরা আছে যদিও ....

আজকাল বাচ্চারা বাজে হয়ে উঠছে, কিদো যদি একটি বিজোড় সহকর্মী হয় (প্রথম প্রাথমিকটি ASCII-কোড বিজোড় হয়) সে একটি অদ্ভুত উপহার চায়! যদি তিনি এমনকি একজন সহকর্মী হন (প্রথম প্রাথমিকটি ASCII- কোড এমনকি) তাকে অবশ্যই একটি এমনকি দেওয়া উচিত! 3 দ্বারা বিভাজিত যে কোনও শিশু, তবে, দুষ্টু, দুষ্টু বালক, তাই পিপিসি ক্লজকে অবশ্যই পরের বছর তাদের আচরণ করতে তাদের এড়ানো উচিত। তার পথটিকে সাফল্য হিসাবে বিবেচনা করার জন্য তাকে অবশ্যই সমস্ত উপহার প্রদান করা উচিত যাঁরা তাদের প্রাপ্য এবং তাদের কোনও শিশুকে খুব বেশি উপহার দেওয়া উচিত নয়। যে কোনও শিশু যদি তার সহকর্মীদের চেয়ে 3+ বেশি উপহার পায় তবে তার পরের বছর দুষ্টু শিশু হওয়ার ঝুঁকি রয়েছে এবং এটি ঠিক ঠিক নয়! এছাড়াও, যদি কোনও ভাল সন্তানের উপহার নেওয়া হয় যখন অন্য ভাল বাচ্চা না দেয়, এটি সেই শিশুটিকে মন্দ করে তুলবে।

উদাহরণ

বাচ্চারা নিম্নরূপ:

Kids = ["Amy", "Betty", "Clyde", "Dave", "Francine"] = [A,B,C,D,F] = [65,66,67,68,70]

  • বেটি হ'ল মানবতার নিষিদ্ধ, স্পষ্টতই 3 নম্বর কাহুতগুলিতে।
  • অ্যামি এবং ক্লাইড জন্মের পর থেকেই অদ্ভুত ছিল এবং এমনকি উপহার গ্রহণ করতে ঘৃণা করবে।
  • ডেভ এবং ফ্রান্সিন স্বাভাবিক, এমনকি বাচ্চারা; তারা শুধুমাত্র উপহার গ্রহণ করা উচিত!

উপহারগুলি নিম্নরূপ:

Presents = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]

একটি সম্ভাব্য আউটপুট হবে:

[
    ['Amy',[1,3,5]],
    ['Betty',[]],
    ['Clyde',[7,9,11,13]],
    ['Dave',[2,4,6,8]],
    ['Francine',[10,12,14]]
]

ব্যতিক্রম পরিস্থিতি

তবে, কেবলমাত্র পিপিসি ক্লজ প্রস্তুত এবং ইচ্ছুক, এর অর্থ এই নয় যে পিপিসিজি ক্লজ পারে can এখানে ব্যতিক্রম পরিস্থিতিতে একটি তালিকা রয়েছে যেখানে আপনাকে বার্তাটি দিয়ে পিপিসি ক্লজকে খারাপ সংবাদটি ভেঙে ফেলতে হবে:

PPCGmas is cancelled!

নিম্নলিখিত পরিস্থিতিতে ক্রিসমাস বাতিল হওয়ার ফলস্বরূপ:

  • কোন শিশু নেই।
    • [],[1,2,3] - ওয়েল, তারা ডেড।
  • ভাল ছেলেমেয়ে নেই।
    • ["Betty"],[1,2,3] - সিরিয়াসলি, বেটি স্ক্রু।
  • ভাল বাচ্চাদের চেয়ে কোনও উপহার বা কম উপহার নেই।
    • ["Amy","Charles"],[] - এক বা একাধিক কোনও উপহার পাবেন না।
    • ["Amy","Charles"],[1] - এক বা একাধিক কোনও উপহার পাবেন না।
  • সমস্ত ভাল বাচ্চাদের সন্তুষ্ট করার জন্য বিজোড় / এমনকি উপহার নেই।
    • ["Amy","Dave"],[2,4,6] - অ্যামি খুব খারাপ হয়ে গেছে।

এখানে দৃশ্যের একটি তালিকা যা পিপিসিগামাসকে প্রভাবিত করবে না:

  • বাম উপহার (সমস্ত বাচ্চাদের উপহারের সর্বাধিক পরিমাণ গ্রহণ করা উচিত)।
    • ["Amy","Dave"],[2,4,6,8,10,12,14,7,9] = [["Amy",[7,9]],["Dave",[2,4,6,8]]]

প্রধান বিধি পুনরাবৃত্তি

  1. ভাল বাচ্চারা তাদের প্রথম প্রাথমিকের উপর ভিত্তি করে হয় এমনকি অদ্ভুত are
  2. খারাপ শিশুদের প্রথম প্রাথমিকভাবে 3 দ্বারা বিভাজ্য হয়।
  3. সমস্ত ভাল বাচ্চাদের অবশ্যই কমপক্ষে একটি উপস্থিত থাকা উচিত।
  4. কোনও ভাল সন্তানের জন্য অন্য কোনও ভাল সন্তানের চেয়ে 2 টিরও বেশি উপহার গ্রহণ করা হয় না।
  5. যদি বাকী উপহার থাকতে হয় তবে আপনাকে অবশ্যই 4 টি লঙ্ঘন না করে সর্বাধিক বিতরণ করতে হবে।
  6. খারাপ বাচ্চাদের অবশ্যই কোনও উপহার গ্রহণ করা উচিত নয়।
  7. এর মধ্যে যদি কোনও লঙ্ঘিত হয় তবে আপনাকে অবশ্যই আউটপুট করতে হবে PPCGmas is cancelled!

I / O ফর্ম্যাট প্রয়োজনীয়তা

  • 1 ম ইনপুটটি অবশ্যই প্রথম প্রাথমিক নয়, সম্পূর্ণ নামের একটি অ্যারে / তালিকা / কমা-বিস্মৃত স্ট্রিং হওয়া আবশ্যক।
  • ২ য় ইনপুটটি অবশ্যই ধনাত্মক পূর্ণসংখ্যার অ্যারে / তালিকা / কমা-বিস্মৃত স্ট্রিং হতে হবে।
  • আউটপুটটি আপনি যে অর্থ উপস্থাপন করেছেন তা কীভাবে বিতরণ করেছেন তার কোনও বিন্যাস হতে পারে; বা PPCGmas is Cancelled!

বিজয়ী মানদণ্ড:

টিএল; ডিআর: বেটি হট্টগোল, প্রতিযোগিতা করবেন না।


আমি বুঝতে পারি না, উদাহরণস্বরূপ, কেন বেটি পায় না 3? সম্পাদনা : যদি কারও "বেটি" স্ক্রু করা উচিত, তবে কেন তিনি আদৌ চ্যালেঞ্জের মধ্যে আছেন?
NoOneIs এখানে

@ সিউইনহিনো বি =, 66,% 66% 3 = 0, 66 0 দ্বারা বিভাজ্য, বেটি দুষ্টু।
ম্যাজিক অক্টোপাস উরান

উত্তর:


4

এপিএল, 171 বাইট

{D←{⍵=1:⊂⍺⋄0~⍨¨↓⍵↑⍉↑⍺⊂⍨1=⍵|⍳⍴⍺}⋄e←⍺~o←⍺/⍨2|⍺⋄(0=≢G)∨0∊≢¨P←P↑⍨¨(2+⌊/R)⌊R←≢¨P←(o D≢O),e D≢E←G~O←G/⍨2|⎕A⍳⊃¨G←⍵/⍨×3|⊃∘⎕UCS¨⍵:'PPCGmas is cancelled!'⋄(O,E,B),[⍟4]P,(≢B←⍵~G)↑⊂⍬}

এটি উপহারগুলি বাম আর্গুমেন্ট হিসাবে, শিশুদেরকে সঠিক আর্গুমেন্ট হিসাবে গ্রহণ করে এবং একটি ম্যাট্রিক্স প্রদান করে যেখানে প্রথম কলামে বাচ্চাদের নাম রয়েছে এবং দ্বিতীয় কলামে তারা প্রাপ্ত উপস্থাপনা রয়েছে।

Testcases:

      P←{D←{⍵=1:⊂⍺⋄0~⍨¨↓⍵↑⍉↑⍺⊂⍨1=⍵|⍳⍴⍺}⋄e←⍺~o←⍺/⍨2|⍺⋄(0=≢G)∨0∊≢¨P←P↑⍨¨(2+⌊/R)⌊R←≢¨P←(o D≢O),e D≢E←G~O←G/⍨2|⎕A⍳⊃¨G←⍵/⍨×3|⊃∘⎕UCS¨⍵:'PPCGmas is cancelled!'⋄(O,E,B),[⍟4]P,(≢B←⍵~G)↑⊂⍬}
      (⍳14) P 'Amy' 'Betty' 'Clyde' 'Dave' 'Francine'
┌────────┬─────────┐
│Amy     │1 5 9 13 │
├────────┼─────────┤
│Clyde   │3 7 11   │
├────────┼─────────┤
│Dave    │2 6 10 14│
├────────┼─────────┤
│Francine│4 8 12   │
├────────┼─────────┤
│Betty   │         │
└────────┴─────────┘
      1 2 3 P ⍬
PPCGmas is cancelled!
      1 2 3 P ⊂'Betty'
PPCGmas is cancelled!
      ⍬ P 'Amy' 'Charles'
PPCGmas is cancelled!
      (,1) P 'Amy' 'Charles'
PPCGmas is cancelled!
      2 4 6 P 'Amy' 'Dave'
PPCGmas is cancelled!
      2 4 6 8 10 12 14 7 9 P 'Amy' 'Dave'
┌────┬───────┐
│Amy │7 9    │
├────┼───────┤
│Dave│2 4 6 8│
└────┴───────┘

অসম্পূর্ণ সংস্করণ এখানে।


এই "ক্রিসমাস" কোনটির মধ্যে আপনি অসম্পূর্ণ সংস্করণে কথা বলছেন: পি?
ম্যাজিক অক্টোপাস উরান

4

জাভাস্ক্রিপ্ট (ES6), 525 492 454 453 বাইট

-71 by বাইটস @ জিগেডেস -২ বিট ধন্যবাদ @ জ্যাক কোবকে

P=(K,p)=>{y='charCodeAt';n=(C)=>C[y](0)%3>0;N=(C)=>C[y](0)%3<1;E=(C)=>C[y](0)%2>0;O=(C)=>C[y](0)%2<1;f=(U)=>U%2<1;F=(U)=>U%2;M=(U,C)=>C%s==S;s=S=0;a=new Array();G='filter';e=p[G](f);o=p[G](F);J=K[G](n);r=J[G](O);L='length';i=J[G](E);s=r[L];for(S=0;S<r[L];S++){a.push([r[S],e[G](M)]);}s=i[L];for(S=0;S<i[L];S++){a.push([i[S],o[G](M)]);}K=K[G](N);for(S=0;S<K[L];S++){a.push(K[S],[]);}return(e[L]<r[L]||o[L]<i[L]||(r[L]+i[L])<1)?"PPCGmas is Cancelled!":a;}

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

নন-গল্ফ সংস্করণ

আরও গল্ফ হতে পারে বলে আমি মনে করি। আমি কেবল অ-গল্ফযুক্ত সংস্করণের একটি লিটারের অনুবাদ করেছি did

এটি এখন "সান্তা" (115 + 97 + 110 + 116 + 97 = 535) রচনার চারকোডের যোগফলের চেয়ে সংক্ষিপ্ত। Yeay


C[0]পরিবর্তে C.charCodeAt(0)11 বাইট সংরক্ষণ করুন। এছাড়াও, যখন কোনও সম্পত্তি অনেকবার পুনরাবৃত্তি করে আপনি তার নামটি পছন্দ মতো সঞ্চয় করতে পারেন L='length'এবং i[L]পরিবর্তে ব্যবহার করতে পারেন i.length
ওয়াশিংটন গুডিস

2
যাইহোক, পিপিসিজিতে আপনাকে স্বাগতম!
ওয়াশিংটন গুয়েডস

পরামর্শের জন্য আপনাকে ধন্যবাদ! : ডি। আচ্ছা, আমি সি.আরকোডএট (0) এর পরিবর্তে সি [0] (repl.it- এ আধুনিক ফায়ারফক্স ব্রাউজার) চেষ্টা করেছি এবং এটি প্রথম যাচাইকরণে "পিপিসিগামাস বাতিল হয়েছে" ফিরিয়ে দেয়। দ্বিতীয়টির মতো এটি খুব ভাল কাজ করে,
বাইটসকে

1
এটিতে আমার আসল উত্তরের মতো একই বাগ রয়েছে যেখানে এটি যদি ব্যর্থ হয় তবে ভাল বাচ্চারা যদি সমস্তরকম বা সমস্ত অদ্ভুত হয় তবে এই পরীক্ষার চেষ্টা করুন:P(["Amy", "Betty", "Clyde"],[1,2,3,4,5,6,7,8,9,10,11,12,13,14]);
জ্যাক কোব

সেটা সত্য ! এটি ছিল কারণ আমি গত যাচাইকরণের একটিতে "+" এর পরিবর্তে "&&" ব্যবহার করেছি। আপনাকে ধন্যবাদ এই সমস্যাটি এখন ঠিক করা হয়েছে, এবং আমি একটি বাইট অর্জন করেছি।
কোল্ড

4

পাইথন 2, 334 355 354 বাইট

k,p=input()
z=zip
l=len
e=[];o=[];g=[];b=[];q=[];r=[]
for x in k:[g,b][ord(x[0])%3<1]+=x,
for x in g:[e,o][ord(x[0])&1]+=x,
for x in p:[q,r][x&1]+=x,
v=l(e)
w=l(o)
t=v and l(q)/v
u=w and l(r)/w
if u:t=min(t,u+2)
if t:u=min(u,t+2)
if l(g)*(t or v<1)*(u or w<1)<1:exit('PPCGmas is cancelled!')
print z(e,z(*[iter(q)]*t))+z(o,z(*[iter(r)]*u))+z(b,[()]*l(b))

একমাত্র-এমনকি বা একমাত্র-বিজোড় শিশুদের কেস পরিচালনা করতে 21 বাইট হারিয়েছে।

@ টুকুএক্সএক্সকে 1 বাইট সংরক্ষণ করা হয়েছে।


না কাজ করে, ord('A')%3==0হয় Falseকিন্তু 1-ord('A')%3হল -1
জেক কোব

ওহ হ্যাঁ, আপনি ঠিক বলেছেন। আমার ক্ষমা। %3<1কাজ করা উচিত.
ইয়াতসি

2

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

(a,b)=>{c={};a.forEach(d=>c[d]=[]);e=f=0;while(!e){e=g=1;a.forEach(h=>(j=h.charCodeAt())%3?(k=b.findIndex(l=>l%2==j%2))<0?g=0:c[h][f+1]?0:e=0&c[h].push(b.splice(k,1)[0]):0);f+=!e&g}return f?c:"PPCGmas is cancelled!"}

আউটপুট (এটি যদি ত্রুটির স্ট্রিং না হয়) এমন একটি বস্তু যার কীগুলির বাচ্চাদের নাম; মানটি হ'ল উপহারের অ্যারে যা শিশু গ্রহণ করে।

দুটি বাইট সংরক্ষণ করা যখন আমি বুঝতে পারি আমার কাছে রিডান্ট্যান্ট প্রথম বন্ধনী রয়েছে।

অবরুদ্ধ সংস্করণ:

(names, gifts) => {

  // Initialize result. Set every child's gift array to empty
  var result = {};
  names.forEach(name =>
    result[name] = [];
  );

  // Initialize external loop values
  var done = false;
  var leastNumberOfPresentsAmongGoodChildren = 0;

  // Give the gifts
  while (!done) {

    // Initialize internal loop values
    done = true;
    var everyGoodChildGotGift = true;

    // Try to give at most one gift to every good child
    names.forEach(name => {
      var nameCode = name.charCodeAt(0);

      // Ignore bad children
      if ((nameCode % 3) != 0) {

        // Try to find an appropriate gift
        var giftIndex = gifts.findIndex(gift => (gift % 2) == (nameCode % 2));

        // If there is no gift, set the flag
        if (giftIndex < 0)
          everyGoodChildGotGift = false;

        // Make sure we don't give too many gifts
        else if (result[name].length < leastNumberOfPresentsAmongGoodChildren + 2) {

          // Remove the gift from the gifts array (we can't give it again)
          var giftToGive = gifts.splice(giftIndex, 1)[0];

          // Give the gift to the child
          result[name].push(giftToGive);

          // If at least one child got a gift, try to give more gifts
          done = false;
        }
      }
    }); // end forEach

    // If we're done, that means we couldn't give a gift to any good child
    if (done)
      everyGoodChildGotGift = false;

    // If every good child got a gift, then increase the count
    if (everyGoodChildGotGift)
      leastNumberOfPresentsAmongGoodChildren++;

  } // end while

  // If every good child gets at least one gift, return who gets what
  if (leastNumberOfPresentsAmongGoodChildren != 0)
    return result;
  else
    return "PPCGMas is cancelled!"; // IT'S ALL YOUR FAULT, BETTY. YOU'VE RUINED PPCGMAS.
}

হাই, পিপিসিজিতে আপনাকে স্বাগতম! পোস্টগুলি কীভাবে ফরম্যাট করা হয় তা বুঝতে পেরে আপনি খুশী হয়েছিলেন। শুভ কোড-গল্ফিং!
এটাকো

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