একটি সংখ্যা k এবং একটি অ্যারে arr[n] দেওয়া আছে যাতে n সংখ্যক ইন্টিজার উপাদান আছে যেগুলো একটি সিস্টেমে খোলা অ্যাপসের আইডি সংরক্ষণ করে; কাজ হল k সংখ্যক সবচেয়ে gầnের ব্যবহৃত অ্যাপস দেখানো, যেমন Alt+Tab চাপলে সব gầnের অ্যাপস দেখায় এবং সবচেয়ে gầnের আগে কম gầnের। প্রতিটি আইডির পজিশন সিস্টেমে ভিন্ন অ্যাপ বোঝায়:
- arr[0]-এ থাকা আইডি হল বর্তমানে ব্যবহৃত অ্যাপের আইডি।
- arr[1]-এ থাকা আইডি হল সবচেয়ে gầnের ব্যবহৃত অ্যাপের আইডি।
- arr[n-1]-এ থাকা আইডি হল সবচেয়ে কম gầnের ব্যবহৃত অ্যাপের আইডি।
নোট - Alt+Tab চাপলে একটি পয়েন্টার থাকে, যা ইন্ডেক্স ০ থেকে শুরু করে সব খোলা অ্যাপের মধ্য দিয়ে যاয়, যা বর্তমানে ব্যবহৃত অ্যাপ।
উদাহরণ
Input: arr[] = {1, 2, 3, 4, 5}, k=2
Output: 3 1 2 4 5
Explanation: আমরা আইডি 3 যেন অ্যাপে স্যুইচ করতে চাই, তাই এটি বর্তমানে সক্রিয় অ্যাপ হবে এবং অন্যান্য সক্রিয় অ্যাপগুলো হবে সবচেয়ে gầnের ব্যবহৃত।
Input: arr[] = {6, 1, 9, 5, 3}, k=3
Output: 5 6 1 9 3
সমাধানের পদ্ধতি:
- অ্যারে arr[n] এবং k ইনপুট নিন।
- যে অ্যাপে ইউজার স্যুইচ করতে চায় তার ইন্ডেক্স k বের করুন।
- ইন্ডেক্স k-র আইডিকে বর্তমান করুন এবং বাকিগুলো ক্রম অনুযায়ী সাজান।
- ফলাফল প্রিন্ট করুন।
অ্যালগরিদম
Start
Step 1-> K সর্বোচ্চ gầnের ব্যবহৃত অ্যাপস বের করার ফাংশন ডিক্লেয়ার
void recently(int* arr, int size, int elem)
Declare int index = 0
Set index = (elem % size)
Declare int temp = index, id = arr[index]
Loop While temp > 0:
Set arr[temp] = arr[--temp]
End
Set arr[0] = id
Step 2-> অ্যারে উপাদান প্রিন্ট করার ফাংশন ডিক্লেয়ার
void print(int* arr, int size)
Loop For i = 0 to size-1: Print arr[i]
Step 3-> main()
Declare int elem = 3
Declare int arr[] = {6, 1, 9, 5, 3}
Calculate size = sizeof(arr)/sizeof(arr[0])
Call recently(arr, size, elem)
Call print(arr, size)
Stop
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void recently(int* arr, int size, int elem) {
int index = 0;
index = (elem % size);
int temp = index, id = arr[index];
while (temp > 0) {
arr[temp] = arr[--temp];
}
arr[0] = id;
}
void print(int* arr, int size) {
for (int i = 0; i < size; i++)
cout << arr[i] << " ";
}
int main() {
int elem = 3;
int arr[] = {6, 1, 9, 5, 3};
int size = sizeof(arr) / sizeof(arr[0]);
recently(arr, size, elem);
cout << "array in most recently used fashion: ";
print(arr, size);
return 0;
}
আউটপুট
array in most recently used fashion: 5 6 1 9 3