답안 #1032672

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1032672 2024-07-24T06:02:49 Z 김은성(#10965) 괄호 문자열 (CEOI16_match) C++17
0 / 100
1 ms 348 KB
#include <bits/stdc++.h>
using namespace std;
char s[100009], t[100009];
int cnt[128], cur[128];
int n;
bool possible(int idx, vector<char> st){
    int i;
    for(i=idx; i<n; i++){
        if(!st.empty() && st.back() == s[i])
            st.pop_back();
        else
            st.push_back(s[i]);
    }
    return st.empty();
}
int main(){
    int i;
    scanf(" %s", s);
    n = strlen(s);
    for(i=0; i<n; i++)
        cnt[s[i]]++;
    vector<char> st;
    if(!possible(0, st)){
        printf("-1\n");
        return 0;
    }
    for(i=0; i<n; i++){
        st.push_back(s[i]);
        t[i] = '(';
        if(st.size()>1 && st[st.size()-2] == s[i]){
            if(cur[s[i]] >= cnt[s[i]]/2 || !possible(i+1, st)){
                t[i] = ')';
                st.pop_back();
                st.pop_back();
            }
        }
        cur[s[i]]++;
    }
    printf("%s\n", t);
    return 0;
}

Compilation message

match.cpp: In function 'int main()':
match.cpp:21:16: warning: array subscript has type 'char' [-Wchar-subscripts]
   21 |         cnt[s[i]]++;
      |             ~~~^
match.cpp:31:23: warning: array subscript has type 'char' [-Wchar-subscripts]
   31 |             if(cur[s[i]] >= cnt[s[i]]/2 || !possible(i+1, st)){
      |                    ~~~^
match.cpp:31:36: warning: array subscript has type 'char' [-Wchar-subscripts]
   31 |             if(cur[s[i]] >= cnt[s[i]]/2 || !possible(i+1, st)){
      |                                 ~~~^
match.cpp:37:16: warning: array subscript has type 'char' [-Wchar-subscripts]
   37 |         cur[s[i]]++;
      |             ~~~^
match.cpp:18:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |     scanf(" %s", s);
      |     ~~~~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -