Informatica Online Judge

  사전순으로 가장 빠른 단어 [1344 / 0540]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 21   Total Tried : 25


The Champion of this Problem (C++) : gs15120 - 0ms / 1283byte
My Best Submission (C++) : N/A

[]

Background

1개의 단어가 주어진다.

이 단어는 알파벳 소문자로만 구성된다.

이 단어를 오른쪽으로 시프트 하거나 왼쪽으로 시프트 할 수 있다.

만약 주어진 단어가 good라면

오른쪽으로 1, 2, 3, 4번 시프트 한 결과는

dgoo, odgo, oodg, good

가 된다.

왼쪽도 마찬가지이다.

이와 같이 원하는 방향으로 원하는 만큼 시프티 하여 사전순으로 가장 빠른 단어를 만드는 것이 목적이다.

이 때는 dgoo 가 답이다.

그리고 한 자연수 k 가 주어진다.

특정 알파벳을 k개 원하는 알파벳으로 만들 수 있다.

당연히 위치에 관계없이 원하는 것을 바꿀 수 있다.

예를 들어서 입력이

good이고 k = 1이라면

사전 순으로 가장 빠른 단어는 "o"하나를 "a"로 바꾸고 적절히 시프트하면

adgo를 만들 수 있다.

그리고 k = 4라면

당연히 aaaa가 될 수 있다.

이를 구하는 프로그램을 작성하시오.

Input

첫 번째 줄에 알파벳으로 이루어진 단어가 입력된다. 단어의 길이는 최대 2000자이다.

두 번째 줄에 k의 값이 입력된다. 이 값은 0이상 단어의 길이 이하의 값이다.

Output

사전순으로 가장 빠른 단어를 출력한다.

IO Example

입력1
good
1

출력1
adgo

입력2
good
4

출력2
aaaa

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]