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

সি++-এ A[i] < B[j] < C[k] সন্তুষ্টকারী ট্রিপলেট গণনা

তিনটি অ্যারে A[], B[], C[] দেওয়া আছে। লক্ষ্য হল এই তিনটি অ্যারের উপাদান দিয়ে A[i] < B[j] < C[k] সন্তুষ্টকারী সব ট্রিপলেট বের করা। তিনটি অ্যারের দৈর্ঘ্য সমান N।

প্রতিটি অ্যারে একবার ট্রাভার্স করে A[i] < B[j] && B[j] < C[k] চেক করা হয়। সত্য হলে count বাড়ানো হয়।

উদাহরণ

ইনপুট:

A[] = {1,4,5}, B = {0,2,3}, C = {0,6,7}

আউটপুট: ট্রিপলেট সংখ্যা: ৪

ব্যাখ্যা: A[i] < B[j] < C[k] সন্তুষ্টকারী ট্রিপলেট: (1,2,6), (1,2,7), (1,3,6), (1,3,7)। মোট ৪টি।

ইনপুট:

A[] = {7,8,9}, B = {4,5,6}, C = {1,2,3}

আউটপুট: ট্রিপলেট সংখ্যা: ০

ব্যাখ্যা: A[i] < B[j] < C[k] সন্তুষ্টকারী কোনো ট্রিপলেট নেই।

অ্যাপ্রোচ

  • সমান দৈর্ঘ্যের তিনটি ইন্টিজার অ্যারে A[], B[], C[] নেওয়া হয়।
  • N ভেরিয়েবলে দৈর্ঘ্য।
  • countTriplets(int a[], int b[], int c[], int n) ফাংশন তিনটি অ্যারে এবং দৈর্ঘ্য গ্রহণ করে শর্ত সন্তুষ্টকারী ট্রিপলেট রিটার্ন করে।
  • তিনটি নেস্টেড লুপ: আউটার 0<=i
  • যদি a[i] < b[j] && b[j] < c[k] হয়, count বাড়ানো হয়।

উদাহরণ কোড

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

int countTriplets(int a[], int b[], int c[], int n) {
    int count = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            for (int k = 0; k < n; k++) {
                if (a[i] < b[j] && b[j] < c[k]) {
                    count++;
                }
            }
        }
    }
    return count;
}

int main() {
    int A[] = { 1,2,3 };
    int B[] = { 2,3,2 };
    int C[] = { 4,3,1 };
    int N = 3;
    cout << endl << "Number of triplets : " << countTriplets(A, B, C, N);
    return 0;
}

আউটপুট

Number of triplets : 6
  1. C++-এ অ্যারেকে এমনভাবে কনভার্ট করা যাতে এর GCD ১ হয়

  2. অ্যারেতে a+b+c=d হওয়া সর্বোচ্চ d বের করা (C++)

  3. অ্যারেতে এমন মৌলিক সংখ্যা K খুঁজে বের করা যাতে (A[i] % K) সর্বোচ্চ হয় C++-তে

  4. সি++ প্রোগ্রাম: সংখ্যা বিভাজ্য করে এমন অঙ্কগুলোর গণনা (Count of Digits Dividing the Number)