단어 바꾸기 놀이
시간 제한1초메모리 제한256 MB
길이가 같은 두 단어 쌍마다 각 자리 글자 차이를 합산해 얻은 코인, 지불한 코인, 무료 여부를 출력합니다.
문제
놀이공원에서 내년에 새 게임을 연다. 진행자가 단어 하나를 골라 종이에 적고 참가자에게는 그 단어의 길이만 알려준다. 진행자가 적은 단어를 단어 1, 참가자가 말하는 같은 길이의 단어를 단어 2라고 하자. 두 단어가 얼마나 다른지, 즉 단어 1의 글자를 단어 2의 글자로 바꾸는 데 드는 품에 따라 참가자는 동전을 얻거나 낸다. 이제 막 여섯 살이 된 아그네스는 글을 겨우 읽기 시작했고 셈은 아직 못 해서 도움이 필요하다.
동전 규칙은 다음과 같다.
- 게임에는 알파벳 소문자 a부터 z까지만 쓴다.
- 두 단어의 차이는 같은 자리끼리만 비교해서 정한다.
- 각 자리에서 (1) 두 글자가 같으면 동전을 내지도 얻지도 않는다. (2) 단어 1의 글자가 단어 2의 글자보다 알파벳 순서에서 앞서면, 두 글자 사이에 놓인 글자 하나마다 동전 1개씩에 1개를 더해서 낸다. (3) 단어 1의 글자가 단어 2의 글자보다 뒤에 있으면, 같은 방식으로 센 만큼 동전을 얻는다.
예를 들어 진행자가 agnes를 적고 참가자가 heard를 말하면 계산은 아래 표와 같다.
한 자리에서 얻은 동전은 더하고 낸 동전은 빼서 단어 쌍 전체의 합계를 구한다. 합계가 양수면 그만큼 얻고, 음수면 그 절댓값만큼 낸다. 0이면 오가는 동전이 없다.
길이만 맞춰 aal이나 abut 같은 단어를 말하면 언제나 동전을 얻으니 시시한 게임처럼 보인다. 실제 놀이공원 게임에는 너무 많이 얻으면 한 푼도 주지 않는다는 단서가 붙지만, 이 문제에서는 그 단서를 무시한다.
단어 쌍 여러 개를 읽어 쌍마다 얻는 동전 수 또는 내는 동전 수를 알려주는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. ()
다음 개의 줄에 각각 단어 두 개가 공백 하나로 구분되어 주어진다. 앞의 단어가 단어 1, 뒤의 단어가 단어 2다. 두 단어는 길이가 서로 같고, 알파벳 소문자로만 이루어지며, 길이는 1 이상 100 이하다.
출력
각 테스트 케이스마다 한 줄씩 출력한다. 단어 1을 A, 단어 2를 B, 합계를 라고 하자.
- 이면
Swapping letters to make A look like B earned S coins. - 이면
Swapping letters to make A look like B cost S coins., 이때S자리에는 합계의 절댓값을 적는다. - 이면
Swapping letters to make A look like B was FREE.
동전이 1개일 때도 coin이 아니라 coins로 적는다.