제출 #154367

#제출 시각아이디문제언어결과실행 시간메모리
154367arnold518Match (CEOI16_match)C++14
37 / 100
2044 ms636 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 1e5;

int N;
char A[MAXN+10];
char ans[MAXN+10];

int main()
{
    int i, j;

    scanf("%s", A+1); N=strlen(A+1);

    vector<char> S;
    for(i=1; i<=N; i++)
    {
        if(!S.empty() && A[i]==S.back()) S.pop_back();
        else S.push_back(A[i]);
    }
    if(!S.empty()) return !printf("-1");

    for(i=1; i<=N; i++)
    {
        ans[i]='(';
        vector<char> V;
        for(j=1; j<=i; j++)
        {
            if(ans[j]=='(') V.push_back(A[j]);
            else V.pop_back();
        }

        for(j=i+1; j<=N; j++)
        {
            if(!V.empty() && A[j]==V.back()) V.pop_back();
            else V.push_back(A[j]);
        }
        if(!V.empty()) ans[i]=')';
    }
    printf("%s", ans+1);
}

컴파일 시 표준 에러 (stderr) 메시지

match.cpp: In function 'int main()':
match.cpp:18:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%s", A+1); N=strlen(A+1);
     ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...