ABX

시간 제한1초메모리 제한1024 MB

요약
X를 A 또는 B로 바꿔 A와 B가 각각 N개가 되게 하면서, 같은 문자끼리 거리 합이 최소인 문자열과 최대인 문자열을 구한다.
난이도

보통10점 중 6점

유형
그리디, 수학, 누적 합
정답자
아직 제출이 없습니다

문제

NN개의 A와 NN개의 B로 이루어진 문자열 TT에서 A가 놓인 위치를 a_1,a_2,⋯ ,a_Na\_1,a\_2,\cdots ,a\_N, B가 놓인 위치를 b_1,b_2,⋯ ,b_Nb\_1,b\_2,\cdots ,b\_N이라고 하자. 문자열 TT의 점수 f(T)f(T)는 같은 문자끼리의 거리의 총합으로 정의되며, f(T)=∑_i=1N∑_j=1N(∣a_i−a_j∣+∣b_i−b_j∣)f(T) =\sum\_{i=1}^{N}\sum\_{j=1}^{N}(|a\_i-a\_j|+|b\_i-b\_j|)으로 계산한다.

A, B, X로 구성된 길이가 2N2N인 문자열 SS가 주어진다. SS에는 A와 B가 각각 최대 NN개 포함되어 있다. 여러분은 X를 A 또는 B로 적절히 바꿔서, A와 B의 개수가 각각 정확히 NN이 되도록 만들어야 한다.

점수를 최소화하는 문자열과 최대화하는 문자열을 구하라.

입력

첫째 줄에 NN이 주어진다.

둘째 줄에 SS가 주어진다.

출력

NN개의 A와 NN개의 B로 이루어진 문자열 2개를 한 줄에 하나씩 출력한다.

첫째 줄에 점수를 최소화하는 문자열, 둘째 줄에 점수를 최대화하는 문자열을 출력한다. 이러한 문자열이 여러 개 존재할 경우, 그중 아무거나 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1≤N≤3,0001\le N\le 3\\, 000
  • SS는 A, B, X로 이루어진 길이가 2N2N인 문자열로, A와 B는 각각 최대 NN번 등장한다.

예제2

  1. 예제 1

    입력
    1
    BA
    
    예상 출력
    BA
    BA
    
  2. 예제 2

    입력
    4
    AXBXBAXX
    
    예상 출력
    ABBBBAAA
    ABBABABA