# Greatest string.

## Problem:-

You are given a string and an integer Q. You are allowed to perform at most operations on the string. In one operation, you can change any vowel to it’s next character (e.g., ‘a’->’b’, ‘e’->’f’, ‘i’->’j’, ‘o’->’p’, ‘u’->’v’). Generate the lexicographically greatest string by performing at most Q operations on string S.
Note- Vowels in English alphabet are- ‘a’,’e’,’i’,’o’,’u’.
Input Format:
First line contains an integer denoting the number of test cases .
For each test case,in first line you will be given the string and in second line an integer Q (maximum number of operations allowed).
Output Format:
For each test case , print the lexicographically greatest string that can be formed after applying at most operations on the given string.
Answer for each test case should come in a new line.
Constraints:

$1\le T\le 10$

$1\le |S|\le {10}^{5}$

$0\le Q\le {10}^{5}$

String will consist of only lowercase English alphabets.

SAMPLE INPUT

`2abcde3xyzwu0`
SAMPLE OUTPUT

`bbcdfxyzwu`
Explanation

For case 1:
We have string “abcde” and we are allowed to perform at max 3 operations, we can form lexicographically greatest string by applying the operation on first and last character of string by changing the string to “bbcdf”,which is lexicographically greatest.

For Case 2:
We are not allowed to do any operations, so the answer will be the string itself.

Time Limit:1.0 sec(s) for each input file.
Memory Limit:256 MB
Source Limit:

## solution:-

#include<stdio.h>
void main()
{
int t,q,k=1;
char s[100000];
scanf(“%d”,&t);
for(int i=1;i<=t;i++)
{
scanf(“%s”,s);
scanf(“%d”,&q);
for(int j=0;s[j];j++)
{
if(k>q)
break;
else
{
int x;
x=s[j];
if(s[j]==‘a’||s[j]==‘e’||s[j]==‘i’||s[j]==‘o’||s[j]==‘u’)
{
x=x+1;
s[j]=x;
k++;
}}
}
printf(“%sn”,s);
k=1;
}
}