Submission #1344933


Source Code Expand

#include <iostream> 
#include <string> 
#include <vector> 
#include <cmath> 
#include <algorithm> 
#include <cstdlib> 
#include <ctime> 
#include <cstdio> 
#include <functional> 
#include <set> 
#include <sstream> 
#include <cctype>
#include <stack>
#include <queue>
#include <cstring>
#include <map>
#include <deque>
 
using namespace std; 

int gcd(int x,int y){
	return y==0?x:gcd(y,x%y);
}

pair<bool,int> is_valid(deque<char> &d){
    int cnt=0;
    for(int i=0;i<d.size();i++){
        if(d[i]=='(') cnt++;
        else if(cnt<1) return make_pair(false,0);
        else cnt--;
    }
    return make_pair(cnt==0,d.size());
}

int main(){

    int n;
    string s;
    cin>>n>>s;

    deque<char> d;
    for(int i=0;i<n;i++) d.push_back(s[i]);

/*
    auto pos=is_valid(d);
    if(pos.second!=d.size())d.insert(d.begin()+pos.second,'(');
    else d.push_back(')');
    for(int i=0;i<d.size();i++) cout<<d[i];
    cout<<endl;

    return 0;
*/

    int res=0;
    while(true){
        auto p=is_valid(d);
        if(p.first) break;

        res++;
        if(p.second!=d.size())d.insert(d.begin()+p.second,'(');
        else d.push_back(')');
    }

    for(int i=0;i<d.size();i++) cout<<d[i];
    cout<<endl;

	return 0;
}

Submission Info

Submission Time
Task D - Insertion
User lay20114
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1295 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 12
Set Name Test Cases
Sample s1.txt, s2.txt, s3.txt
All in1.txt, in2.txt, in3.txt, in4.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, s1.txt, s2.txt, s3.txt
Case Name Status Exec Time Memory
in1.txt AC 1 ms 256 KB
in2.txt AC 1 ms 256 KB
in3.txt AC 1 ms 256 KB
in4.txt AC 1 ms 256 KB
in5.txt AC 1 ms 256 KB
in6.txt AC 1 ms 256 KB
in7.txt AC 1 ms 256 KB
in8.txt AC 1 ms 256 KB
in9.txt AC 1 ms 256 KB
s1.txt AC 1 ms 256 KB
s2.txt AC 1 ms 256 KB
s3.txt AC 1 ms 256 KB