관광 코스

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

요약
시작 지점마다 초기 호감도 1에서 한 바퀴를 도는 동안 0이 되는지 여부가 주어질 때, 모든 결과와 맞는 설원과 사막 배치를 복원한다.
난이도

어려움10점 중 8점

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

문제

UCPC 왕국에는 왕국 전체를 둘러볼 수 있는 NN개의 구간으로 이루어진 원형 관광 코스가 있다. 각 구간에는 다음 구간으로 갈 수 있는 셔틀버스가 하나 있으며, 1≤i\<N1\leq i\<N에 대해 ii번째 구간에서는 i+1i+1번째 구간으로, NN번째 구간에서는 11번째 구간으로 이동할 수 있다.

이제 북극에서 온 NN명의 관광객이 관광 코스를 이용해서 UCPC 왕국을 둘러볼 예정이다. ii번째 관광객은 ii번째 구간부터 시작해서 셔틀버스를 타고 총 NN개의 구간을 관광한다.

각 구간은 설원과 사막 중 하나이다. 각 관광객은 호감도 11을 가지고 시작 지점부터 관광을 시작하며, 설원 구간을 지날 때마다 호감도가 11 증가하고 사막 구간을 지날 때마다 호감도가 11 감소한다. 각 관광객은 관광 도중 호감도가 00이 되는 즉시 관광을 중지하고 자신의 나라로 떠나버린다. 관광 코스의 NN개의 구간을 모두 둘러본 뒤 호감도가 11 이상이라면 그 관광객은 UCPC 왕국의 비싼 기념품을 구매하고 자신의 나라로 돌아간다.

북극에 살고 있는 당신은 각 관광객의 기념품 구매 여부를 알고 있고, 이 정보를 활용하여 UCPC 왕국의 관광 코스의 구조를 알아내야 한다. 11번부터 NN번까지 관광객의 기념품 구매 여부가 주어졌을 때 가능한 관광 코스의 구조 중 하나를 출력해 보자.

입력

첫 줄에 관광 코스 구간의 수인 NN이 주어진다. (1≤N≤500,000)(1\leq N\leq 500\\, 000)

둘째 줄에 ii번째 관광객의 기념품 구매 여부를 나타내는 길이 NN의 문자열이 주어진다. ii번째 문자는 ii번 관광객의 기념품 구매 여부를 나타내며, 기념품을 구매했다면 O, 구매하지 않았다면 X이다.

출력

주어진 입력으로 가능한 UCPC 왕국의 관광 코스가 존재한다면, 첫 줄에 YES를 출력하고 둘째 줄에 길이 NN의 문자열을 출력한다. ii번째 문자에는 ii번째 구간이 설원이라면 +, 사막이라면 -를 출력한다.

주어진 입력으로 가능한 관광 코스가 존재하지 않는다면 첫 줄에 NO를 출력한다.

예제3

  1. 예제 1

    입력
    5
    OXOXO
    
    예상 출력
    YES
    +-+-+
    
  2. 예제 2

    입력
    6
    XXXXXX
    
    예상 출력
    YES
    +--+--
    
  3. 예제 3

    입력
    5
    XXXOX
    
    예상 출력
    NO