만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

문자열 변환

메모리 제한1024 MB

요약
각 테스트 케이스에서 S의 모든 글자를 F에 들어 있는 글자로 바꾸는 데 필요한 최소 이동 횟수를 구한다.
난이도

쉬움10점 중 3점

유형
문자열, 완전 탐색, 구현, 그리디
정답자
아직 제출이 없습니다

문제

영소문자로 이루어진 문자열 SS가 자물쇠를 나타낸다. 또한 좋아하는 영소문자들의 집합으로 이루어진 문자열 FF가 주어진다. 자물쇠에는 여러 번의 연산을 할 수 있다. 각 연산에서 문자열의 한 글자를 알파벳 순서상 바로 다음 글자나 바로 이전 글자로 바꿀 수 있다. 예를 들어 글자 c는 한 번의 연산으로 b나 d로 바꿀 수 있다. 글자들은 순환하는 순서로 간주한다. 즉, 글자 a의 이전 글자는 z이고, 글자 z의 다음 글자는 a이다.

연산을 적용한 뒤 문자열 SS의 모든 글자가 문자열 FF에 들어 있도록 하는 데 필요한 최소 연산 횟수를 구하라.

입력

입력의 첫 줄에는 테스트 케이스의 수 TT가 주어진다. 그다음 TT개의 테스트 케이스가 이어진다.

각 테스트 케이스는 두 줄로 이루어진다.

각 테스트 케이스의 첫 줄에는 문자열 SS가 주어진다.

각 테스트 케이스의 두 번째 줄에는 문자열 FF가 주어진다.

출력

각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력한다. 여기서 xx는 테스트 케이스 번호(1부터 시작)이고, yy는 연산을 적용한 뒤 문자열 SS의 모든 글자가 문자열 FF의 문자 중 하나가 되도록 하는 데 필요한 최소 연산 횟수이다.

제한

  • 1≤T≤1001≤T≤100.
  • 1≤1≤ SS의 길이 ≤105≤10^5.
  • SS는 영소문자로만 이루어진다.
  • FF는 서로 다른 영소문자로만 이루어진다.
  • 문자열 FF의 글자들은 사전순으로 정렬되어 있다.

예제2

  1. 예제 1

    입력
    2
    abcd
    a
    pppp
    p
    
    예상 출력
    Case #1: 6
    Case #2: 0
    
  2. 예제 2

    입력
    3
    pqrst
    ou
    abd
    abd
    aaaaaaaaaaaaaaab
    aceg
    
    예상 출력
    Case #1: 9
    Case #2: 0
    Case #3: 1