글자 재배열
시간 제한3초메모리 제한128 MB
길이가 같고 서로 애너그램인 두 문자열이 주어질 때, 첫 번째를 두 번째로 바꾸는 데 필요한 인접 교환의 최솟값을 구한다.
문제
어린 존니(Johnny)는 아주 긴 성(姓)을 가지고 있습니다. 그런데 그런 사람이 존니뿐만은 아닙니다. 유치원 친구인 메리(Mary)의 성도 존니의 성과 길이가 같습니다. 메리의 성은 존니의 성과 서로 다르지만, 각 알파벳이 나오는 횟수는 정확히 같습니다. A가 나오는 횟수가 같고, B가 나오는 횟수가 같으며, 나머지 글자도 마찬가지입니다. 즉 한 성은 다른 성의 애너그램(글자 순서만 바꿔 만든 것)입니다.
존니와 메리는 함께 노는 것을 좋아합니다. 두 사람은 작은 종이 조각을 여러 장 준비해, 존니의 성을 이루는 글자들을 한 글자씩 차례대로 적어 한 줄로 늘어놓습니다. 그런 다음 이웃한 두 조각을 맞바꾸는 일을 반복해서, 마지막에 메리의 성이 되도록 만듭니다.
존니는 자신의 성을 메리의 성으로 바꾸려면 이웃한 글자를 최소 몇 번 맞바꾸어야 하는지 궁금해합니다. 두 성이 주어졌을 때, 필요한 인접 교환의 최소 횟수를 구하는 프로그램을 작성하세요.
입력
첫째 줄에 성의 길이를 나타내는 정수 ()이 주어집니다.
둘째 줄에는 존니의 성이 주어집니다. 공백 없이 정확히 개의 글자로 이루어진 문자열입니다.
셋째 줄에는 메리의 성이 같은 형식으로 주어집니다. 공백 없이 정확히 개의 글자로 이루어진 문자열입니다.
두 문자열은 모두 영어 대문자(A부터 Z까지)로만 이루어져 있으며, 각 글자가 두 문자열에 나오는 횟수는 서로 같습니다(즉 두 성은 서로 애너그램입니다).
출력
존니의 성을 메리의 성으로 바꾸는 데 필요한, 이웃한 두 글자의 최소 교환 횟수를 정수 하나로 출력하세요.