만드는 중입니다

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

괄호 배치

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

요약
카드 n장과 순열 p가 주어질 때, 각 카드에 여는 괄호나 닫는 괄호를 붙여 원래 순서와 섞은 뒤의 순서가 모두 올바른 괄호 문자열이 되게 하는 문제입니다.
난이도

어려움10점 중 8점

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

문제

바자타르는 새로운 카드 마술을 만들고 있다. 그에게는 1부터 nn까지 번호가 붙은 카드 nn장이 있다. 각 카드에 여는 괄호 또는 닫는 괄호를 그려서, 카드를 순서대로 늘어놓았을 때 올바른 괄호 문자열이 되도록 하려 한다.

바자타르는 카드를 섞는 데 아주 능숙해서, 섞을 때마다 결과가 항상 같다. 섞은 뒤 ii번째 자리에는 번호 pip_i인 카드가 놓인다. 이 마술은 카드를 섞은 뒤에도 카드가 여전히 올바른 괄호 문자열을 이루어야 한다.

예를 들어 n=6n = 6이고 순열이 p=4,6,1,2,3,5p = 4, 6, 1, 2, 3, 5일 때, 섞기 전에는 카드가 (()())를 이루고 섞은 뒤에는 ()(())를 이루도록 괄호를 그릴 수 있다.

입력

첫 줄에 카드의 개수인 짝수 정수 nn (2≤n≤1 000 0002 \le n \le 1\,000\,000)이 주어진다. 둘째 줄에는 1부터 nn까지의 수로 이루어진 순열 p1,p2,…,pnp_1, p_2, \ldots, p_n이 주어진다.

출력

카드에 괄호를 그려서 조건을 만족시킬 수 없으면 NIE라는 단어를 출력한다. 그렇지 않으면 각 카드에 그릴 괄호를 순서대로 적은, nn개의 (와 ) 문자로 이루어진 단어를 출력한다. 올바른 답이 여러 개이면 그중 아무것이나 출력해도 된다.

예제2

  1. 예제 1

    입력
    6
    4 6 1 2 3 5
    
    예상 출력
    (()())
    
  2. 예제 2

    입력
    2
    2 1
    
    예상 출력
    NIE