Page not loading? Try clicking here.
Placeholder

#8464
Subtask

좌우로 문자 변경 1s 256MB

Problems

영어 소문자로 구성된 문자열 SF가 주어진다.

문자열 S의 각 글자를 알파벳 순서로 뒤나 앞의 글자로 변경할 수 있다.

예를 들어, 글자 C의 경우 B 또는 D로 변경할 수 있다.

글자는 순환 순서로 간주할 수 있기에, 글자 A의 앞 글자는 글자 Z가 되며, 글자 Z의 뒤 글자는 글자 A가 된다.

당신의 목표는 문자열 S의 각 문자들을 최종적으로 F에 있는 문자들 중 하나로 만들기 위하여 문자열 S의 각 문자가 변경되어야 하는 최소한의 작업 수를 찾는 것이다.


Input

첫 번째 줄에는 문자열 S가 주어진다.

두 번째 줄에는 문자열 F가 주어진다.

[제한]

  • 1 \le S의 길이 \le 10^5

  • S는 대문자 알파벳으로만 이루어져 있다.

  • F는 서로 다른 대문자 알파벳으로만 이루어져 있다.

  • F을 구성하는 각 문자는 사전순으로 정렬된 순서로 이루어져 있다.


Output

첫 줄에 문자열의 각 문자들이 변경되어야 하는 필요한 최소 작업 수의 총합을 출력한다.


Subtask

# Score Condition
#120

F의 길이 =1

#220

F의 길이 =2

#330

S의 길이 =1

#430

추가 제약 조건 없음


Example #1

ABCD
A
6

부분 문제 1번에 해당하는 예제이다.

문자열 S의 모든 문자를 문자A로 변환해야 한다.

첫 번째 문자는 이미 A이므로 변경할 필요가 없다.

두 번째 문자는 1회 뒤의 문자로 바꿔 A로 변경한다.

세 번째 문자는 2회 뒤의 문자로 바꿔 A로 변경한다.

네 번째 문자는 3회 뒤의 문자로 바꿔 A로 변경한다.

따라서 총 6회의 변경 작업을 통하여 문자열 S의 모든 문자가 A로 바뀌도록 할 수 있다.


Example #2

EEEE
E
0

문자열 S의 모든 문자가 이미 문자열 F에 존재하는 문자들이기에 변경할 필요가 없다.


Example #3

B
ZF
2

부분 문제 2번과 3번에 해당하는 예제이다.

문자B가 문자Z가 되기 위해서는 B\rightarrowA\rightarrowZ로 2회 변경 되어야 한다.

문자B가 문자F가 되기 위해서는 B\rightarrowC\rightarrowD\rightarrowE\rightarrowF로 4회 변경 되어야 한다.

문자열 S의 각 문자는 문자열 F를 구성하는 문자 중 하나로만 바뀌면 되기에 Z가 되는 2회가 최선이다.


Example #4

PQRST
OU
9

Example #5

ABD
ABD
0

Example #6

AAAAAAAAAAB
ACEG
1

Source

Google Kick Start 2021 Round H A번 변형

You must sign in to write code.