In this

**HackerEarth Alex and his String problem solution**Alex has a string S of length N consisting of lowercase alphabets. He wants to find lexicographically smallest string X of length N that can be formed using the following operation.In one operation, he can select any one character among the at most first K characters of string S, remove it from string S and append it to string X. He can apply this operation as many times as he wants.

Help Alex find the string X.

## HackerEarth Alex and his String problem solution.

`#include <bits/stdc++.h>`

using namespace std;

int main() {

priority_queue<char,vector<char>,greater<char>> pq;

string s;

cin>>s;

int k; cin>>k;

for(int i=0;i<k;i++) pq.push(s[i]);

string ans;

for(int i=k;i<s.length();i++){

ans+=pq.top();

pq.pop();

pq.push(s[i]);

}

while(!pq.empty()) {

ans+=pq.top();

pq.pop();

}

cout<<ans<<"\n";

return 0;

}

## 0 Comments