문자열 만들기 1

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

요약
커서에 SU를 넣고 왼쪽으로 옮기고 US를 넣는 시행을 최대 2N번 써서 S와 U가 절반씩인 주어진 문자열을 만든다.
난이도

보통10점 중 7점

유형
그리디, 구현, 문자열
정답자
아직 제출이 없습니다

문제

이번 학기 물리학실험의 조교장을 맡은 서현이는 학생들의 성적을 입력하는 일을 하고 있다.

서현이가 맡은 분반의 학생 수는 NN명이고, 이 중 정확히 절반에 해당하는 학생들은 S, 나머지 절반의 학생들은 U를 받게 된다. NN은 항상 짝수이다.

11번 학생, 22번 학생, ⋯\cdots, NN번 학생이 받을 성적이 길이 NN인 문자열 TT로 주어진다. 서현이가 할 일은 이 문자열을 전산 시스템에 입력하는 것이다.

서현이는 다음 시행만을 반복하여 학생들의 성적을 입력하려고 한다.

  1. 현재 커서의 위치에 SU 를 추가한다.
  2. 커서가 맨 왼쪽에 있지 않은 경우, 커서를 왼쪽으로 한 글자 움직인다.
  3. 현재 커서의 위치에 US 를 추가한다.

처음 상태는 빈 문자열이며, 커서는 매 순간 문자열의 맨 앞이나 맨 끝, 또는 글자와 글자 사이에 위치한다. 1번 시행과 3번 시행이 끝난 뒤, 커서는 추가된 문자열의 바로 뒤로 이동한다.

서현이를 위해, 시행을 최대 2N2N번 사용하여 학생들의 성적을 모두 입력하는 방법을 하나 찾아주자!

입력

첫째 줄에 문자열의 길이 NN이 주어진다. (2≤N≤1,000,0002\le N\le 1\\,000\\,000, NN은 짝수)

둘째 줄에 학생들의 성적을 나타내는 S와 U로만 이루어진 문자열 TT가 주어진다. TT에서 S와 U의 개수는 같다.

출력

첫째 줄에 시행의 횟수 KK를 출력한다. (0≤K≤2N0\le K\le 2N)

둘째 줄에 서현이의 시행을 나타내는 길이 KK의 문자열을 출력한다. 1번 시행은 S, 2번 시행은 N, 3번 시행은 U로 나타낸다. 커서가 맨 왼쪽에 있을 때에는 2번 시행을 출력해서는 안 된다.

모든 시행이 끝난 뒤에 커서의 위치는 어디에 있든 상관없다.

답이 여러 가지 존재하는 경우 아무거나 하나만 출력한다.

입력 조건 하에서 답이 항상 존재함을 증명할 수 있다.

예제2

  1. 예제 1

    입력
    4
    SUSU
    
    예상 출력
    6
    SNNSNN
    
  2. 예제 2

    입력
    6
    SUSUUS
    
    예상 출력
    9
    UNNSNNSNN