ধরুন আমাদের 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