কম্পিউটার

C++ প্রোগ্রাম অপসারণের ক্রিয়াকলাপের পরে অ্যারের হ্রাসকৃত আকার খুঁজে পেতে


ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে। n ধনাত্মক পূর্ণসংখ্যা সহ একটি পাসওয়ার্ড আছে বিবেচনা করুন. আমরা অ্যারেতে নিম্নলিখিত ক্রিয়াকলাপগুলি প্রয়োগ করি। ক্রিয়াকলাপগুলি হল দুটি সন্নিহিত উপাদানগুলিকে অপসারণ করা যা একে অপরের মতো নয়, তারপরে তাদের যোগফল সেই স্থানে স্থাপন করা। সুতরাং এই ক্রিয়াকলাপটি অ্যারের আকার 1 দ্বারা হ্রাস করবে। এই ক্রিয়াকলাপগুলি সম্পাদন করার পরে আমাদের অ্যারের সম্ভাব্য সর্বনিম্ন দৈর্ঘ্য খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি A =[2, 1, 3, 1] এর মতো হয় তবে আউটপুট হবে 1, কারণ আমরা যদি (1, 3) নির্বাচন করি তবে অ্যারেটি হবে [2, 4, 1], তারপর বেছে নিন (2, 4) অ্যারে তৈরি করতে [6, 1], তারপর [7] পেতে শেষ দুটি নির্বাচন করুন।

পদক্ষেপ

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

n := size of A
Define one set se
for initialize i := 0, when i < n, update (increase i by 1), do:
   insert A[i] into se
if size of se is same as 1, then:
   return n
Otherwise
   return 1

উদাহরণ

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

#include <bits/stdc++.h>
using namespace std;

int solve(vector<int> A) {
   int n = A.size();
   set<int> a;
   for (int i = 0; i < n; i++) {
      a.insert(A[i]);
   }
   if (a.size() == 1)
      return n;
   else
      return 1;
}
int main() {
   vector<int> A = { 2, 1, 3, 1 };
   cout << solve(A) << endl;
}

ইনপুট

{ 2, 1, 3, 1 }

আউটপুট

1

  1. C++ এ একটি লাইনের মধ্যবিন্দু খুঁজে বের করার জন্য প্রোগ্রাম

  2. C++ এ ত্রিভুজের সেন্ট্রোয়েড খুঁজে বের করার প্রোগ্রাম

  3. C++ এ সমান্তরালগ্রামের ক্ষেত্রফল বের করার প্রোগ্রাম

  4. একটি অ্যারের সবচেয়ে বড় উপাদান খুঁজে পেতে C++ প্রোগ্রাম