কম্পিউটার

পাইথনের দুটি ভিন্ন শহরে একই সংখ্যক লোক পাঠানোর জন্য সর্বনিম্ন খরচ খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের খরচ নামক একটি তালিকা আছে। যেখানে খরচ[i] আছে [c1, c2] নির্দেশ করে যে ব্যক্তি i এর জন্য সিটি 0 তে পৌঁছতে c1 পরিমাণ খরচ হয় এবং সিটি 1 তে পৌঁছতে c2 পরিমাণ খরচ হয়। আমরা চাই যে সংখ্যক লোক শহর 0 তে যেতে চাই প্রয়োজনীয় ন্যূনতম খরচ খুঁজে বের করতে হবে।

সুতরাং, ইনপুট যদি খরচের মত হয় =[[2, 6],[10, 3],[4, 9],[5, 8]], তাহলে আউটপুট হবে 17, কারণ ব্যক্তি 0 এবং 2 যাবে। শহর 0 এবং ব্যক্তি 1 এবং 3 থেকে শহর 1, তাই শহর 0-এর জন্য, খরচ হল 2+4 =6, এবং শহর 1-এর জন্য, খরচ হল 8+3 =11, মোট হল 17৷

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

  • s :=0
  • a :=একটি নতুন তালিকা
  • প্রতি জোড়া (x, y) খরচের জন্য, করুন
    • s :=s + x
    • শেষে a তে (y - x) ঢোকান
  • তালিকা সাজান a
  • আমি রেঞ্জ 0 থেকে ফ্লোর (a / 2 এর আকার) - 1 এর জন্য, কর
    • s :=s + a[i]
  • রিটার্ন এস

উদাহরণ

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

def solve(costs):
   s = 0
   a = []
   for x, y in costs:
      s += x
      a += (y - x,)
   a.sort()
   for i in range(len(a) // 2):
      s += a[i]
   return s

costs = [[2, 6],[10, 3],[4, 9],[5, 8]]
print(solve(costs))

ইনপুট

[[2, 6],[10, 3],[4, 9],[5, 8]]

আউটপুট

17

  1. পাইথনে একটি লাঠি কাটতে ন্যূনতম খরচ খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে ঘর আঁকার জন্য ন্যূনতম খরচ খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে সমস্ত পয়েন্ট সংযোগ করার জন্য সর্বনিম্ন খরচ খুঁজে বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রামে প্রাইম নম্বর খোঁজার বিভিন্ন পদ্ধতি