কম্পিউটার

C++ সৈন্যদের সূচক খুঁজে বের করার জন্য প্রোগ্রাম যারা রিকনেসান্স ইউনিট গঠন করতে পারে


ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে। একটি বৃত্তে এন সৈন্যরা দাঁড়িয়ে আছে। সৈনিকের জন্য, উচ্চতা হল A[i]। একটি রিকনেসান্স ইউনিট এমন দুটি সংলগ্ন সৈন্য দিয়ে তৈরি করা যেতে পারে, যার উচ্চতার পার্থক্য ন্যূনতম। সুতরাং তাদের প্রতিটি অন্যের সাথে কম লক্ষণীয় হবে। আমাদের জোড় সৈন্যের সূচকগুলি খুঁজে বের করতে হবে যা একটি পুনরুদ্ধার ইউনিট গঠন করতে পারে৷

সুতরাং, যদি ইনপুটটি A =[10, 12, 13, 15, 10] এর মত হয়, তাহলে আউটপুট হবে (5, 1)।

পদক্ষেপ

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

n := size of A
D := |A[0] - A[n - 1]|
H := n
for initialize i := 1, when i < n, update (increase i by 1), do:
   if D > |A[i] - A[i - 1]|, then:
      D := |A[i] - A[i - 1]|
      H := i
print H and (H mod n)

উদাহরণ

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

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

void solve(vector<int> A) {
   int n = A.size();
   int D = abs(A[0] - A[n - 1]);
   int H = n;
   for (int i = 1; i < n; i++) {
      if (D > abs(A[i] - A[i - 1])) {
         D = abs(A[i] - A[i - 1]);
         H = i;
      }
   }
   cout << H << ", " << (H % n) + 1;
}
int main() {
   vector<int> A = { 10, 12, 13, 15, 10 };
   solve(A);
}

ইনপুট

{ 10, 12, 13, 15, 10 }

আউটপুট

5, 1

  1. C++ প্রোগ্রাম Z আকারে ম্যাট্রিক্স প্রিন্ট করতে?

  2. LCM খুঁজে পেতে C++ প্রোগ্রাম

  3. GCD খুঁজে পেতে C++ প্রোগ্রাম

  4. ফ্যাক্টরিয়াল খুঁজে পেতে C++ প্রোগ্রাম