페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2512

[초등부] 2025 KOI 1차대회 대비 모의고사 (6주차)

좌우로 문자 변경
서브태스크
1초 256MB

문제

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

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

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

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

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


입력

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

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

[제한]

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

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

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

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


출력

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


부분문제

번호 점수 조건
#120점

F의 길이 =1

#220점

F의 길이 =2

#330점

S의 길이 =1

#430점

추가 제약 조건 없음


예제 #1

ABCD
A
6

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

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

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

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

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

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

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


예제 #2

EEEE
E
0

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


예제 #3

B
ZF
2

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

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

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

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


예제 #4

PQRST
OU
9

예제 #5

ABD
ABD
0

예제 #6

AAAAAAAAAAB
ACEG
1
로그인해야 코드를 작성할 수 있어요.