/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 396.0 KiB
#2 Accepted 1ms 532.0 KiB
#3 Accepted 1ms 436.0 KiB
#4 Accepted 1ms 532.0 KiB
#5 Accepted 1ms 496.0 KiB
#6 Accepted 1ms 324.0 KiB
#7 Accepted 2ms 328.0 KiB
#8 Accepted 3ms 384.0 KiB
#9 Accepted 7ms 532.0 KiB
#10 Accepted 24ms 580.0 KiB
#11 Accepted 82ms 532.0 KiB
#12 Accepted 326ms 1.262 MiB
#13 Time Exceeded ≥600ms ≥532.0 KiB
#14 Time Exceeded ≥600ms ≥2.273 MiB

Code

/*
 *   Copyright (c) 2025 Emon Thakur
 *   All rights reserved.
 */
#include<bits/stdc++.h>
using namespace std;
int n;
vector<string> v;
string s;
void bracket(int i,string s,int cnt1,int cnt2)
{
    if(i==n)
    {
        v.push_back(s);
        //cout<<s<<'\n';
        return;
    }
    int rem = n-i-1;
    if(cnt1+cnt2+1 <= rem)
    {
        //s.push_back('(');
        bracket(i+1,s+'(',cnt1,cnt2+1);
        //s.pop_back();
    }
    if(cnt2)
    {
        //s.push_back(')');
        bracket(i+1,s+')',cnt1,cnt2-1);
        //s.pop_back();
    }

    if(cnt1+cnt2+1 <= rem)
    {
        //s.push_back('[');
        bracket(i+1,s+'[',cnt1+1,cnt2);
        //s.pop_back();
    }
    if(cnt1) 
    {
        //s.push_back(']');
        bracket(i+1,s+']',cnt1-1,cnt2);
        //s.pop_back();
    }
}
bool valid(string &s)
{
    //cout<<s<<endl;
    int op1=0,op2=0;
    for(auto e:s)
    {
        if(e=='(') op1++;
        else if(e==')') op1--;
        else if(e=='[') op2++;
        else op2--;
        if(op1 <0 || op2<0) return false;
    }
    if(op1 + op2) return false;
    return true;
}
void naive(int i,string &s)
{
    if(i==n)
    {
        if(valid(s)) cout<<s<<'\n';
        return;
    }
    s.push_back('(');
    naive(i+1,s);
    s.pop_back();

    s.push_back(')');
    naive(i+1,s);
    s.pop_back();

    s.push_back('[');
    naive(i+1,s);
    s.pop_back();

    s.push_back(']');
    naive(i+1,s);
    s.pop_back();
}
int main()
{
    ios::sync_with_stdio(false); cin.tie(nullptr);
    cin >> n;
    naive(0,s);
    //bracket(0,s,0,0);
    sort(v.begin(),v.end());
    for(auto e:v) cout<<e<<'\n';
}

Information

Submit By
Type
Submission
Problem
P1170 Regular bracket sequence
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-22 19:47:14
Judged At
2025-02-22 19:47:14
Judged By
Score
60
Total Time
≥600ms
Peak Memory
≥2.273 MiB