파일 업로드

회문

profile
실행 시간 제한메모리 제한
2 초1024 MB
📃 해결할 문제

동네의 홍길동 사장님은 매년 가을에 호박 축제를 개최합니다. 올해도 홍길동 사장님의 호박 축제가 큰 성황을 이루었는데, 홍길동 사장님의 G과 H 팀은 특별한 경쟁을 펼쳤습니다.

팀원들은 축제의 수상식에 참석하기 위해 이미 줄을 서 있습니다. 그들은 사장님이 총  N(N+1)2\frac{N(N+1)}{2}개의 그룹 사진을 찍어 주길 바랍니다. 각 줄은 축제 참석자들의 연속된 부분 수열을 나타냅니다.

하지만 연날리 사장님은 팀원들의 줄 세우는 방식에 매우 까다롭습니다. 특히, 그는 부분 수열이 회문을 이루지 않는 경우 그 사진을 찍을 거부합니다. 회문이란, 문자나 수열이 앞으로 읽을 때나 뒤로 읽을 때나 동일하게 나타나는 것을 의미합니다.

N(N+1)2\frac{N(N+1)}{2}​개의 연속 부분 수열에 대해 회문을 이루기 위해 필요한 최소 교환 횟수를 세십시오(회문을 만들 수 없는 경우 -1). 한 번의 교환은 부분 수열의 인접한 두 참석자의 위치를 교환하는 것을 의미합니다. 모든 카운트의 합계를 출력하세요.

💻 입력

선수들의 줄을 나타내는 문자열로 NN 길이의 G와 H의 문자열이 주어집니다.

🖨️ 출력

각각의 선수 조합에 대해 회문을 만들기 위해 필요한 최소 교환 횟수를 찾고, 그리고 그 횟수들을 모두 더한 값을 출력하세요. 


💻 예제 입력 1
GHHGGHHGH
🖨️ 예제 출력 1
12

💡 힌트

가능한 문자열의 연속적인 조합을 예시로 들어봅시다. 예를 들어, 첫 네 조합은 G, GH, GHH, 그리고 GHHG입니다. G와 GHHG는 이미 회문이므로 합계에 00을 기여합니다. GHH는 단일 교환을 통해 회문으로 재배열 할 수 있으므로 합계에 11을 기여합니다. GH는 어떠한 수의 교환을 사용하여도 회문으로 만들 수 없으므로 합계에 1-1을 기여합니다.

다른 연속 부분 조합으로 기여하는 합계는 HHGG입니다. 이 조합은 두 번의 교환을 통해 회문으로 재배열 할 수 있습니다. 이렇게 가능한 문자열의 연속적인 조합에서의 값을 모두 카운팅 하면 12가 나옵니다.


출처: USACO 2022 December Contest, Platinum Problem 3. Palindromes