# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
90638 | 2018-12-23T07:50:41 Z | jangwonyoung | 괄호 문자열 (CEOI16_match) | C++14 | 2 ms | 520 KB |
#include<iostream> #include<stack> #include<set> using namespace std; string s,b; int n; set<int>st[226]; stack<int>cut; int main(){ ios::sync_with_stdio(false); cin >> s; b=s; n=s.size(); for(int i=0; i<n ;i++) st[s[i]].insert(i); cut.push(n); for(int i=0; i<n ;i++){ if(!cut.empty() && i==cut.top()){ b[i]=')'; cut.pop(); continue; } st[s[i]].erase(i); b[i]='('; auto it=st[s[i]].lower_bound(cut.top()); if(it==st[s[i]].begin()){ cout << "-1\n"; return 0; } --it; cut.push(*it); st[s[i]].erase(it); } cout << b << '\n'; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 1 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 520 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 1 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 520 KB | Output is correct |
4 | Incorrect | 2 ms | 520 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 1 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 520 KB | Output is correct |
4 | Incorrect | 2 ms | 520 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |