কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: তিনটি আইটেম সার্কুলারলি একে অপর পছন্দ করে কিনা চেক

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(vector 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 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। সার্কুলার চেইন পাওয়া গেল।

  1. C++-এ বাইনারি ট্রি হাইট-ব্যালেন্সড কিনা যাচাই করার প্রোগ্রাম

  2. সি++ STL ব্যবহার করে অ্যারে প্যালিনড্রোম কিনা তা যাচাই করার প্রোগ্রাম

  3. সি++-এ তিনটি বিন্দু সমরৈখিক (collinear) কিনা তা যাচাই করার প্রোগ্রাম

  4. C++ প্রোগ্রাম: গ্রাফ স্ট্রংলি কানেক্টেড কিনা যাচাই