সমস্যা বিবৃতি
N উপাদানগুলির একটি অ্যারে এবং একটি পূর্ণসংখ্যা K. দেওয়া হলে, প্রদত্ত অ্যারের উপর যে কোনো সংখ্যক বার নিম্নলিখিত ক্রিয়াকলাপ সম্পাদন করার অনুমতি দেওয়া হয় −
-
K th ঢোকান অ্যারের শেষে এলিমেন্ট এবং অ্যারের প্রথম এলিমেন্ট মুছে দিন।
কাজটি হল অ্যারের সমস্ত উপাদানকে সমান করতে প্রয়োজনীয় নূন্যতম সংখ্যক চাল খুঁজে বের করা। প্রিন্ট -1 সম্ভব না হলে
যদি arr[] ={1, 2, 3, 4, 5, 6} এবং k =6 তাহলে ন্যূনতম 5টি চাল প্রয়োজন:মুভ-1:{2, 3, 4, 5, 6, 6} সরান- 2:{3, 4, 5, 6, 6, 6}মুভ-3:{4, 5, 6, 6, 6, 6}সরান-4:{5, 6, 6, 6, 6, 6}সরান -5:{6, 6, 6, 6, 6, 6}
অ্যালগরিদম
<পূর্ব>1. প্রথমে আমরা শেষে a[k] অনুলিপি করি, তারপর a[k+1] এবং আরও 2। নিশ্চিত করতে যে আমরা শুধুমাত্র সমান উপাদানগুলি অনুলিপি করি, K থেকে N রেঞ্জের সমস্ত উপাদান সমান হওয়া উচিত। আমাদের 1 থেকে K রেঞ্জের সমস্ত উপাদান অপসারণ করতে হবে যা a[k]3 এর সমান নয়। যতক্ষণ না আমরা 1 থেকে K রেঞ্জের মধ্যে সবচেয়ে সঠিক পদে না পৌঁছাই ততক্ষণ পর্যন্ত ক্রিয়াকলাপগুলি প্রয়োগ করতে থাকুন যা a[k] এর সমান নয়৷উদাহরণ
#include#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))Namespace ব্যবহার করে জন্য (i =k - 1; i =0; --i) { if (arr[i] !=arr[k - 1]) { ফেরত i + 1; } } রিটার্ন 0;} int main(){ int arr[] ={1, 2, 3, 4, 5, 6}; int k =6; cout <<"সর্বনিম্ন চালনা প্রয়োজন =" < আউটপুট
আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −
তৈরি করেসর্বনিম্ন চাল প্রয়োজন =5