কম্পিউটার

পাইথনে N আকারের একটি রিংয়ে যেকোনো পূর্ণসংখ্যা বিন্দু থেকে A এবং B পর্যন্ত দূরত্বের ন্যূনতম যোগফল খুঁজুন


ধরুন আমাদের একটি রিং আছে, যা 1 থেকে N পর্যন্ত কয়েকটি সংখ্যা দিয়ে তৈরি। আমাদের কাছে A এবং B টো নম্বরও রয়েছে। এখন, আমরা যেকোনো জায়গায় দাঁড়াতে পারি (বলুন x) এবং দূরত্বের মোট যোগফলের সাপেক্ষে গণনা অপারেশনটি সম্পাদন করুন (বলুন Z =X থেকে A এর দূরত্ব + X থেকে B পর্যন্ত দূরত্ব)। আমাদের এমন X নির্বাচন করতে হবে যাতে Z ছোট হয়। শেষে Z এর মান ফেরত দিন। আমাদের মনে রাখতে হবে যে X A এবং B এর মত হবে না।

সুতরাং, যদি ইনপুটটি হয় N =30, A =10, B =20, তাহলে X =15 নির্বাচন করে আউটপুট 10 হবে, X থেকে A থেকে দূরত্ব হল 5, এবং থেকে দূরত্ব X থেকে B হল 5। সুতরাং, মোট দূরত্ব =5 + 5 =10।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • যদি a> b অ-শূন্য হয়, তাহলে

    • a এবং b

      অদলবদল করুন
  • clock_wise_dist :=b - a

  • counter_clock_wise_dist :=(a - 1) +(n - b + 1)

  • minimum_dist :=সর্বনিম্ন_clock_wise_dist, counter_clock_wise_dist

  • যদি minimum_dist 1 এর মত হয়, তাহলে

    • রিটার্ন 3

  • minimum_dist

    ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def get_min_z(n, a, b):
   if (a > b):
      a, b = b, a
   clock_wise_dist = b - a
   counter_clock_wise_dist = (a - 1) + (n - b + 1)
   minimum_dist = min(clock_wise_dist, counter_clock_wise_dist)
   if (minimum_dist == 1):
      return 3
   return minimum_dist
n = 30
a = 10
b = 20
print(get_min_z(n, a, b))

ইনপুট

30, 10, 20

আউটপুট

10

  1. পাইথনে সাব-ট্রির নোড মানের সমষ্টি থেকে ন্যূনতম মান বের করার প্রোগ্রাম

  2. একটি গ্রাফের বৃহত্তম চক্রের সর্বনিম্ন আকার খুঁজে বের করার জন্য প্রোগ্রাম (পাইথন)

  3. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

  4. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম