কম্পিউটার

C++ এ চিপসের সাথে খেলুন


ধরুন কিছু চিপ আছে, i-th চিপটি বর্তমানে চিপস[i] অবস্থানে রয়েছে। আমরা যেকোন চিপে যতবার চাই (সম্ভবতইজিরো) নিচের দুটি ধরনের অপারেশনের যেকোনো একটি করতে পারি −

  • i-th চিপটিকে 2 ইউনিট বাম দিকে বা ডান দিকে 0 খরচ সহ সরান।

  • i-th চিপটিকে 1 ইউনিট বাম দিকে বা ডান দিকে 1 খরচ সহ সরান।

প্রাথমিকভাবে, দুই বা তার বেশি চিপ থাকতে পারে। সমস্ত চিপগুলিকে একই অবস্থানে নিয়ে যাওয়ার জন্য আমাদের ন্যূনতম মূল্য ফেরত দিতে হবে। চূড়ান্ত অবস্থান যেকোনো কিছু হতে পারে। সুতরাং যদি প্রাথমিক চিপের অ্যারে [2,2,2,3,3] হয়, তাহলে আউটপুট হবে 2। চতুর্থ এবং পঞ্চম উভয় চিপ দুটি পজিশনে স্থানান্তরিত হবে যার খরচ 1 হবে। সুতরাং মোট সর্বনিম্ন খরচ হবে 2

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

  • বিজোড় :=0 এবং জোড় :=0

  • আমি 0 থেকে অ্যারের দৈর্ঘ্যের মধ্যে

    • যদি চিপস [i] বিজোড় হয়, তাহলে জোড় বাড়ান, অন্যথায় জোড় বাড়ান

  • ন্যূনতম বিজোড় এবং জোড় ফেরত দিন।

উদাহরণ (C++)

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int minCostToMoveChips(vector<int>& chips) {
      int odd =0;
      int even = 0;
      for(int i =0;i<chips.size();i++){
         if(chips[i]&1)odd++;
         else even++;
      }
      return min(odd,even);
   }
};
main(){
   Solution ob;
   vector<int> v1 = {2,2,2,3,3};
   cout << ob.minCostToMoveChips(v1);
}

ইনপুট

[2,2,2,3,3]

আউটপুট

2

  1. কিভাবে CSS দিয়ে কন্টাক্ট চিপ তৈরি করবেন?

  2. C++ এ উদাহরণ সহ এক্সপ্রেশন ট্রি

  3. C++-এ সর্বাধিক জল সহ ধারক

  4. C++ এ 3n স্লাইস সহ পিৎজা