Logo
(追記) (追記ここまで)

8381번 - Brackets 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB5913823.529%

문제

By a correct bracketing we mean a string consisting of brackets ( and ), in which the number of opening brackets is equal to the number of closing brackets and each prefix of the string contains at least as many opening brackets, as closing brackets. This way, ()() is a correct bracketing, while ())( is not, because prefix ()) contains more closing brackets than opening brackets.

For a given pair of bracketings of length 2n, we say that the earlier bracketing is the one which has an opening bracket in the first position, where these bracketings differ. Such an ordering is equivalent to lexicographical ordering, assuming that '(' < ')'.

Write a program which:

  • reads from the standard input numbers n and k,
  • finds lexicographically k-th bracketing of length 2n (bracketings are numbered starting from one),
  • writes result to the standard output.

입력

Input contains exactly two integers n and k (1 ≤ n ≤ 4 000, 1 ≤ k ≤ 1018), separated by a single space.

출력

In the first and only line your program should output a bracketing of length 2n, which is the k-th bracketing among all correct bracketings of length 2n. Input data is prepared in such a way that the bracketing your program is supposed to find always exists.

제한

예제 입력 1

3 2

예제 출력 1

(()())

힌트

출처

Contest > Algorithmic Engagements > PA 2007 6-1번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /