
class Solution {
public:
vector<int> inventoryManagement(vector<int>& stock, int cnt) {
int left = 0;
int right = stock.size() - 1;
quicksort(left, right, stock, cnt);
vector<int> a;
for(int i = 0; i<cnt; i++)
{
a.push_back(stock[i]);
}
return a;
}
void quicksort(int left, int right, vector<int>& stock, int cnt) {
if( left >= right)
return;
int start = left;
int end = right;
int p = stock[left];
while(left < right)
{
while(stock[right] >= p && left < right)
{
right -= 1;
}
if(stock[right] < p)
{
stock[left++] = stock[right];
}
while(stock[left] <= p && left < right)
{
left += 1;
}
if(stock[left] > p)
{
stock[right--] = stock[left];
}
}
stock[left] = p;
quicksort(start, left-1,stock,cnt);
if(left<cnt-1)
{
quicksort(left+1,end,stock,cnt);
}
}
};

