বন্ধুদের সাথে সারিবদ্ধ


16

বিনোদন পার্কে আপনি আপনার সেরা কুঁড়ি, জিমের সাথে রয়েছেন এবং আপনার প্রিয় যাত্রাটি চোখে পড়ার সাথে সাথে আপনি এবং জিম একচেটিয়া দৃষ্টি আকর্ষণ করছেন। স্বাভাবিকভাবেই আপনি লাইন পেতে রেস। দুর্ভাগ্যক্রমে তিনি জিতলেন কারণ আপনি একজন গল্ফার এবং তিনি একটি সত্যিকারের খেলা খেলেন (দুঃখিত বন্ধুরা)। প্রকৃতপক্ষে, আপনি এতটাই পিছিয়ে গেছেন যে আপনি এবং জিম লোক দ্বারা পৃথক হয়েছেন x। রেখার দৈর্ঘ্য ধরে নিলে nএবং আপনি পিছনে এবং লাইনটি প্রতিটি jমানুষকে জিগ করে তোলে , আপনি এবং জিম একই কলামে কোন আড্ডায় চ্যাট করতে পারবেন (কেবলমাত্র এক সারি আলাদা)?

ইনপুট

3 পূর্ণসংখ্যা

  • n- লাইনের দৈর্ঘ্য এই সংখ্যাটি সর্বদা বৃহত্তর বা সমান jহবে এবং সেই ধরণের হবে y * jযেখানে yইতিবাচক পূর্ণসংখ্যা (সারিতে সারি সংখ্যা)।
  • j- লাইনের এক সারিতে থাকা লোকের সংখ্যা (এক সারিতে কলামের সংখ্যা)। এই সংখ্যাটি সর্বদা 0 এর চেয়ে বেশি হবে।
  • x- আপনার এবং জিমের মধ্যে এমন লোকের সংখ্যা 0 <= x < 2j - 1। ইঙ্গিত: যদি এই সংখ্যাটি বিজোড় হয় তবে আপনার আউটপুট খালি থাকতে হবে।

আউটপুট

জিমটি আপনার মতো একই কলামে লাইনে পূর্ণসংখ্যা অবস্থানের একটি তালিকা।
1 যতক্ষণ আপনি নিজের উত্তরে উল্লেখ করেছেন এই সংখ্যাগুলি 0 বা 1-ইনডেক্সড হতে পারে।
2 এই পূর্ণসংখ্যাগুলি ধরে নিতে পারে যে আপনি নিজের উত্তরটিতে নির্দিষ্ট করা অবধি 0 বা পজিশন এন -1 এ শুরু করবেন।

উদাহরণ

কুইয়িং উদাহরণ ছোট
এই উদাহরণে, ইনপুট হবে n = 9, j = 3, x = 0। আউটপুটটি হওয়া উচিত 2, 5কারণ আপনি জিমের মতো একই কলামে থাকাকালীন আপনার অবস্থান 2 বা 5 হয়

পরীক্ষার কেস

[9, 3, 0] -> [2, 5]
[12, 3, 0] -> [2, 5, 8]
[9, 3, 1] -> []
[9, 3, 2] -> [1, 4]
[14, 7, 10] -> [1]
[24, 4, 6] -> [0, 4, 8, 12, 16]

স্কোরিং

এটি , তাই সংক্ষিপ্ত উত্তরটি (বাইটে) জেতে।


4
আমি এর কিছু আকর্ষণীয় সমাধান দেখতে কিউ ক্রু! (দুঃখিত দু: খজনক শব্দ এবং এছাড়াও শব্দটির অযৌক্তিক ব্যবহার তবে যাই হোক না কেন, আমাকে বিচার করবেন না: পি)
হাইপারনিউটারিনো

1
আমরা কি খালি অ্যারের পরিবর্তে মিথ্যা মানটি ফিরিয়ে দিতে পারি?
Rɪᴋᴇʀ

@ রিকার আমি এটিকে অস্বীকার করার কোনও কারণ দেখতে পাচ্ছি না। এর জন্য যান
পোকে ২

উত্তর:


9

পাইথন 2 , 45 41 40 37 বাইট

lambda n,j,x:range(j-x/2,x%2or n-x,j)

বেশ তুচ্ছ সমাধান। আমি কেবলমাত্র নিদর্শনগুলির জন্য স্ক্যান করেছি এবং একটি প্যাটার্ন পেয়েছি। 1-ইনডেক্সড, 1 সারির পিছনে।

-4 বাইটগুলি টের্নারিগুলি এড়িয়ে এবং পরিবর্তে মানগুলির জন্য একটি অ্যারে ব্যবহার করে
-1 বিপরীত ক্রমে স্যুইচ করে টার্নারি andবা অ্যারে নির্বাচকগুলির পরিবর্তে
-3 বাইট ব্যবহার করে @ ডেডপসসামের কিছু অনুপ্রেরণায় ধন্যবাদ বাইট thanks orশুধুমাত্র 1-ইনডেক্সিংয়ের কারণে কাজ করে

এছাড়াও, অতিক্রম করা 4 এখনও 4 এর সমস্তটিতে 4 :(

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


লোল, আপনি আমার আগে মাত্র 14 মিনিট পোস্ট করেছেন :) আমার সংস্করণটি 3 বাইট দ্বারা সংক্ষিপ্ত:lambda n,j,x:x%2-1and range(j-x/2,n-j+1,j)
মৃত পসসুম

পছন্দ করুন আমার কাছে আরও একটি সমাধান রয়েছে যা এর চেয়ে এক বাইট কম, লোল
হাইপারনিউটারিনো

রেঞ্জের দ্বিতীয় যুক্তিতে আমার একটি ভুল হয়েছিল। এটি হওয়া উচিত নয় n-j+1, lambda n,j,x:x%2-1and range(j-x/2,n-x,j)মোট 40 বাইটে আরও একটি দ্বারা সংক্ষিপ্ত
ডেড পসসাম

@ ডেডপসসাম অপেক্ষা করুন, আমাদের কি খালি অ্যারের পরিবর্তে মিথ্যা মান ফিরিয়ে দেওয়ার অনুমতি দেওয়া হয়েছিল?
হাইপারনিউটারিনো ২

3
@ ফিলিপনার্দিবাটিস্টা "1-ইনডেক্সড" এর অর্থ বিটিডব্লিউ।
14

2

পিপ , 22 21 বাইট

20 বাইট কোডের, -pপতাকা জন্য +1 ।

c%2?lv-c/2+b*\,a/b-1

লাগে n, jএবং xকমান্ড লাইন আর্গুমেন্ট হিসাবে। 0-সূচকযুক্ত, পজিশন থেকে শুরু করুন 0 এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এটি আমার আসল 22-বাইট সংস্করণ কারণ এটি কিছুটা বেশি বোধগম্য।

                       a, b, c are cmdline args; l is [] (implicit)
c%2?                   Test c mod 2
    l                  If it's 1 (truthy), return empty list; else:
                a/b-1  Number of rows in the queue minus 1
               ,       Range(^)
             b*        Multiply each element by b
     b-1-c/2+          Add (b-1)-c/2 to each element
                       Output in [1;2;3] format (implicit, -p flag)

সূত্র জন্য প্যাটার্ন দেখে প্রাপ্ত হয়েছিল n=9, j=3:

x Output
0 [2;5]
2 [1;4]
4 [0;3]

আমরা যদি নেওয়া x/2( 0, 1, 2), তা থেকে বিয়োগ j-1( 2, 1, 0), এবং যোগ যে [0;3], আমরা সব ক্ষেত্রেই সঠিক ফলাফল পেতে।


1

জাভা 8 লাম্বদা, 101 বাইট

(n,j,x)->{int[]i=new int[n/j-1];int c=0,k=j-x/2;for(;k<n-x;k+=j)i[c++]=k;return x/2==0?i:new int[0];}

আমার পাইথন উত্তরের প্রায় প্রত্যক্ষ-প্রত্যক্ষ বন্দর। জাভাতে যদিও রেঞ্জের অস্তিত্ব নেই।


0

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

(n#j)x|odd$round x=[]|m<-j-x/2=[m,m+j..n-x]

হাইপারনিউট্রিনো থেকে পাইথন উত্তরটি থেকে অনেকগুলি সরাসরি পোর্ট করা হয়েছিল

আরও ভাল ফর্ম্যাট কোড:

f n j x |odd$round x = []
        |otherwise   = let m=j-x/2 in [m,m+j..n-x]

সম্পাদনা: এটি উল্লেখ করতে ভুলে গেছেন যে এটি একটি সূচকযুক্ত


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