এই সমস্যায়, আমাদেরকে N রেঞ্জ [L, R] এবং Q কোয়েরি দেওয়া হয়েছে যার প্রতিটিতে একটি নম্বর ভ্যাল রয়েছে। আমাদের কাজ হল C++ এ সংখ্যা L-R-এর N রেঞ্জে আছে কিনা তা পরীক্ষা করার জন্য প্রশ্নের সমাধান করার জন্য একটি প্রোগ্রাম তৈরি করা।
সমস্যা বর্ণনা
আমাদেরকে [L, R] প্রকারের N রেঞ্জ দেওয়া হয়েছে যাতে L থেকে R পর্যন্ত পূর্ণসংখ্যার মান রয়েছে, উদাহরণস্বরূপ, পরিসর [3, 6]-এ 3,4,5,6 রয়েছে। প্রতিটি প্রশ্নে, আমাদের একটি ভাল দেওয়া হয়, যার উপস্থিতি পরীক্ষা করা হয়। যদি ভ্যালটি রেঞ্জের যেকোনো একটিতে উপস্থিত থাকে তবে প্রোগ্রামটি সত্যে ফিরে আসবে অন্যথায় এটি মিথ্যা হবে৷
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট :রেঞ্জ[N] ={{2, 4}, {6,7}, {9, 12}}
প্রশ্ন =3
প্রশ্ন ={1, 7, 10}
আউটপুট :উপস্থিত নয়
উপস্থাপন করুন
উপস্থাপন করুন
ব্যাখ্যা
ক্যোয়ারী 1-এর জন্য:নম্বর 1 কোনো পরিসরে উপস্থিত নেই।
কোয়েরি 2-এর জন্য:7 নম্বরটি {6, 7} পরিসরে উপস্থিত।
ক্যোয়ারী 1 এর জন্য:10 নম্বরটি {9, 12} পরিসরে উপস্থিত।
সমাধান পদ্ধতি
আমাদের চেক করতে হবে যে কোন রেঞ্জে ভ্যালটি উপস্থিত আছে কিনা, তাই আমাদের চেক করতে হবে এটি ভ্যালটি সমস্ত রেঞ্জের সাথে সম্পর্কিত। এর জন্য, আমরা একটি হ্যাশম্যাপ ব্যবহার করব। রেঞ্জের L এবং R আলাদাভাবে সংরক্ষণ করুন এবং তারপর বাইনারি সার্চ অ্যালগরিদম ব্যবহার করে অনুসন্ধান করলে সমাধানটি সহজ হবে।
উদাহরণ
(int i =0; iআউটপুট
ক্যোয়ারী 1 এর জন্য:প্রদত্ত ডিজিট 1টি প্রদত্ত রেঞ্জের কোন একটিতে উপস্থিত নেই ক্যোয়ারী 2 এর জন্য:প্রদত্ত ডিজিট 7টি প্রদত্ত রেঞ্জগুলির একটিতে উপস্থিত রয়েছে ক্যোয়ারী 3 এর জন্য:প্রদত্ত ডিজিট 10 প্রদত্ত রেঞ্জগুলির একটিতে উপস্থিত রয়েছে