मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। पृथ्वी पर n तल हैं और इनकी संख्या 1 से n तक है। संख्या I वाला तल समतल A[i] पसंद करता है। ए [i]! =मैं। हमें जाँच करनी है कि क्या तीन तल p, q, और r हैं जहाँ p को q पसंद है, q को r पसंद है और r को p पसंद है।
इसलिए, यदि इनपुट ए =[2, 4, 5, 1, 3] जैसा है, तो आउटपुट ट्रू होगा, क्योंकि ट्रिपलेट [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