nটি প্লেন আছে, i-তম প্লেন A[i]-কে পছন্দ করে (A[i] ≠ i)। তিনটি প্লেন p, q, r খুঁজে বের করতে হবে যাতে p→q, q→r, r→p পছন্দের চেইন থাকে।
সমাধানের ধাপসমূহ
প্রতিটি i-তে চেক করুন: A[A[A[i+1]]] == i+1 কিনা। (১-ভিত্তিক ইন্ডেক্সিং)।
উদাহরণ
#include <bits/stdc++.h> using namespace std; bool solve(vectorA) { 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 A = {2, 4, 5, 1, 3}; cout << solve(A) << endl; return 0; }
ইনপুট
{2, 4, 5, 1, 3}
আউটপুট
1
ব্যাখ্যা
ট্রিপলেট [2, 4, 1]: 2→4, 4→1, 1→2। সার্কুলার চেইন পাওয়া গেল।