একটি পেয়ার অ্যারে P দেওয়া আছে। P[i] = (l, r) রূপে, আর একটি সংখ্যা k। একটি বইয়ের n অধ্যায় আছে, প্রতিটি পৃষ্ঠা ঠিক একটি অধ্যায়ের, প্রতিটি অধ্যায়ে কমপক্ষে এক পৃষ্ঠা। আমরা কিছু পৃষ্ঠা পড়েছি এবং k নম্বর পৃষ্ঠাকে প্রথম অপঠিত পৃষ্ঠা হিসেবে চিহ্নিত করেছি। আমরা সম্পূর্ণ পড়া নাই এমন অধ্যায়ের সংখ্যা বের করতে হবে। P[i] = অধ্যায়ের পৃষ্ঠা রেঞ্জ।
উদাহরণ
P=[[1,3],[4,7],[8,11]], k=4 → আউটপুট: 2
ব্যাখ্যা: প্রথম অধ্যায় পড়া হয়েছে, বাকি দুটি অপঠিত।
সমাধানের ধাপসমূহ
n := P-এর সাইজ
for i := 1 to n:
if k >= P[i-1][0] and k <= P[i-1][1]:
return n - i + 1
return 0
সি++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int solve(vector<vector<int>> P, int k) {
int n = P.size();
for (int i = 1; i <= n; i++) {
if (k >= P[i-1][0] && k <= P[i-1][1])
return n - i + 1;
}
return 0;
}
int main() {
vector<vector<int>> P = {{1,3},{4,7},{8,11}};
int k = 4;
cout << solve(P, k) << endl;
}
ইনপুট
{ {1,3}, {4,7}, {8,11} }, 4
আউটপুট
2