// No.592 括弧の対応 (2) // https://yukicoder.me/problems/no/592 // #include #include #include #include #include using namespace std; vector solve(string &S); int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); int N; cin >> N; string S; cin >> S; vector ans = solve(S); for (auto i = 1; i < ans.size(); ++i) cout << ans[i] << endl; } vector solve(string &S) { vector res(S.size()+1); stack status; for (auto i = 0; i < S.size(); ++i) { if (S[i] == '(') { status.push(i + 1); } else if (S[i] == ')') { if (!status.empty()) { int t = status.top(); status.pop(); res[i + 1] = t; res[t] = i + 1; } } } return res; }