কম্পিউটার

C++ প্রোগ্রাম পরের আইটেম পছন্দ করে কি না বৃত্তাকারে তিনটি আইটেম চেক করতে


ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে। পৃথিবীতে n প্লেন রয়েছে এবং তাদের সংখ্যা 1 থেকে n পর্যন্ত। আমি প্লেন A[i] পছন্দ করে নম্বর সহ প্লেন। A[i] !=i. আমাদের পরীক্ষা করতে হবে যে তিনটি প্লেন p, q এবং r আছে যেখানে p পছন্দ করে q, q পছন্দ করে r এবং r পছন্দ করে p।

সুতরাং, যদি ইনপুটটি A =[2, 4, 5, 1, 3] এর মত হয়, তাহলে আউটপুটটি True হবে, কারণ ট্রিপলেট হল [2, 4, 1]।

পদক্ষেপ

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

n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
   if A[A[A[i + 1]]] is same as i + 1, then:
      return true
return false
রিটার্ন করুন

উদাহরণ

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

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

bool solve(vector<int> A) {
   int n = A.size();
   for (int i = 0; i < n; i++) {
      if (A[A[A[i + 1]]] == i + 1) {
         return true;
      }
   }
   return false;
}
int main() {
   vector<int> A = { 2, 4, 5, 1, 3 };
   cout << solve(A) << endl;
}

ইনপুট

{ 2, 4, 5, 1, 3 }

আউটপুট

1

  1. একটি গাছ উচ্চতা ভারসাম্যপূর্ণ কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম C++ এ

  2. একটি অ্যারে প্যালিনড্রোম কিনা বা C++ এ STL ব্যবহার করছে না তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. C++ এ তিনটি বিন্দু সমরেখার কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. একটি গ্রাফ দৃঢ়ভাবে সংযুক্ত কি না তা পরীক্ষা করার জন্য C++ প্রোগ্রাম