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

সব ইন্টারভ্যালের ইন্টারসেকশন বের করা (C++)

Nটি ইন্টারভ্যাল [L, R] দেওয়া আছে। সব ইন্টারভ্যালের ইন্টারসেকশন (সাধারণ অংশ) বের করুন। ইন্টারসেকশন নেই হলে -1 রিটার্ন করুন।

প্রথম ইন্টারভ্যালকে ফাইনাল ইন্টারভ্যাল ধরে রেখে বাকিগুলোর সাথে ইন্টারসেকশন আপডেট করুন: L = max(L1,L2), R = min(R1,R2)।

উদাহরণ

#include <iostream>
#include <algorithm>
using namespace std;

struct Interval { int left, right; };

void findIntersection(Interval intervals[], int N) {
    int l = intervals[0].left, r = intervals[0].right;
    for (int i = 1; i < N; i++) {
        if (intervals[i].left > r || intervals[i].right < l) {
            cout << -1; return;
        }
        l = max(l, intervals[i].left);
        r = min(r, intervals[i].right);
    }
    cout << "{" << l << ", " << r << "}";
}

int main() {
    Interval intervals[] = {{1,6},{2,8},{3,10},{5,8}};
    findIntersection(intervals, 4);
    return 0;
}

আউটপুট

{5, 6}
  1. C++ ব্যবহার করে অ্যারেতে a % b = k সেটি করার সব জোড়া (a, b) বের করা

  2. C++ ব্যবহার করে সব ডুপ্লিকেট সাবট্রি বের করা

  3. C++-এ গ্রাফে সব ফরওয়ার্ড এজ (Forward Edges) খুঁজে বের করা

  4. C++ প্রোগ্রাম: দ্বিঘাত সমীকরণের মূল (Roots) নির্ণয়