만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

괄호

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

요약
정수 A가 주어질 때, 인접한 두 문자를 교환해 균형 문자열로 만드는 최소 횟수가 정확히 A인 가장 짧은 괄호 문자열을 사전순으로 가장 작게 출력한다.
난이도

보통10점 중 7점

유형
그리디, 수학, 문자열, 조합론
정답자
아직 제출이 없습니다

문제

Dave는 "("와 ")"로만 이루어진 문자열을 좋아한다. 그중에서도 균형 잡힌 문자열에 관심이 많다. 균형 잡힌 문자열은 다음 규칙으로 만들어지는 문자열이다.

  • 문자열 "()"는 균형 잡힌 문자열이다.
  • 균형 잡힌 문자열 두 개를 이어 붙인 문자열은 균형 잡힌 문자열이다.
  • TT가 균형 잡힌 문자열이면 "(", TT, ")"를 이 순서로 이어 붙인 문자열도 균형 잡힌 문자열이다.

예를 들어 "()()"와 "(()())"는 균형 잡힌 문자열이고, ")("와 ")()(()"는 균형 잡힌 문자열이 아니다.

Dave에게는 "("와 ")"로만 이루어진 문자열이 하나 있다. 이 문자열은 다음 조건을 모두 만족한다.

  • 인접한 두 문자를 교환하는 연산을 정확히 AA번 해서 균형 잡힌 문자열로 만들 수 있다.
  • B<AB < A인 어떤 음이 아닌 정수 BB에 대해서도, 인접한 두 문자를 BB번 교환해서는 균형 잡힌 문자열로 만들 수 없다.
  • 위 두 조건을 만족하는 문자열 중 길이가 가장 짧다.

Dave의 문자열을 구하시오. 조건을 만족하는 문자열이 여러 개이면 사전순으로 가장 앞선 것을 출력한다. ASCII와 마찬가지로 "("가 ")"보다 작다.

입력

첫째 줄에 정수 AA가 주어진다. (1≤A≤1091 \le A \le 10^9)

출력

첫째 줄에 Dave의 문자열을 출력한다. 조건을 만족하는 문자열이 여러 개이면 사전순으로 가장 앞선 것을 출력한다.

힌트

A=1A = 1이면 교환 한 번으로 균형 잡힌 문자열이 되는 문자열은 무한히 많고, 그중 가장 짧은 것이 ")("이다.

A=4A = 4이면 "))(()("도 교환 4번으로 균형 잡힌 문자열이 되고 그보다 적은 횟수로는 되지 않지만, 사전순으로 더 앞선 ")())(("가 답이다.

예제2

  1. 예제 1

    입력
    1
    
    예상 출력
    )(
    
  2. 예제 2

    입력
    4
    
    예상 출력
    )())((