시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 (하단 참고) | 512 MB | 49 | 22 | 17 | 58.621% |
Alice 와 Albert 는 종종 카드 게임을 하는데, 동생인 Albert는 게임에서 지면 너무 슬퍼하기 때문에 Alice는 일부러 져주려고 한다.
두 사람이 하는 게임은 n장의 카드를 이용하는데 각 카드에는 영문 대문자 (A-Z) 하나가 적혀있다. 아래와 같은 규칙으로 게임을 하는데, 동생인 Albert는 아직 어리기 때문에 항상 Alice가 예측한대로 플레이 한다.
Alice는 Albert에게 일부러 져주되 게임이 끝났을 때 (Albert의 점수 - Alice 의 점수)가 최소가 되도록 하고 싶다.
예를 들어, n = 4이고 바닥에 놓인 카드가 "BCCB" 라 하자.
다른 예로, n = 4이고 바닥에 놓인 카드가 "CLCD"라 하자.
입력으로 좌측에서 우측으로 나열된 n장의 카드에 적힌 알파벳이 주어졌을 때, Alice가 최소한의 점수차로 져줄 수 있는 방법을 찾아보자.
첫 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스는 한 줄에 걸쳐 영문 대문자로만 구성된 문자열이 공백없이 주어진다.
각 테스트 케이스에 대해 Alice가 최소의 점수차로 Albert에게 져줄 때 이 점수 차이가 무엇인지 출력한다.
만약 져줄 수 있는 방법이 없을 경우 -1을 출력한다.
5 ABA BBB BCCB CLCD ALBERT
3 4 1 -1 4
예제 1: Albert가 가장 좌측의 A를 가져오고 (+2점), Alice는 가장 우측의 A를 가져온 후 (+1점), Albert 가 마지막 카드인 B를 가져와 (+2점) 점수 차이는 3이 된다. 2점 이하로 져주는 방법은 없다.
예제 2: Alice가 득점할 수 있는 방법은 없고, Albert가 4점을 얻어 점수차이가 4가 된다.
예제 3-4: 본문에서 다루었다.
예제 5: 두 사람이 순서대로 처음 4턴 동안 A, L, B, E를 가져와서 Albert가 4점, Alice가 2점을 얻은 후 남은 카드는 "RT"가 된다. Albert는 R을 가져오고 (총 6점) Alice가 T를 가져와 점수 차이는 4점이 된다.