QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#591332#5534. Matchrotcar07100 ✓37ms17732kbC++202.0kb2024-09-26 15:26:502024-09-26 15:26:50

Judging History

你现在查看的是最新测评结果

  • [2024-09-26 15:26:50]
  • 评测
  • 测评结果:100
  • 用时:37ms
  • 内存:17732kb
  • [2024-09-26 15:26:50]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
mt19937 rnd(time(0));
constexpr int maxn=1e5+5;
int cnt[26],lst[26];
typedef long long ll;
constexpr ll mod=1e9+9;
struct mat{
    ll a[2][2];
    mat(int x=0){a[0][0]=a[1][1]=x,a[0][1]=a[1][0]=0;}
    inline ll* operator [](int ind){return a[ind];}
    mat operator * (mat&b){
        mat c;
        for(int i:{0,1})for(int j:{0,1}) c[i][j]=(a[i][0]*b[0][j]+a[i][1]*b[1][j])%mod;
        return c;
    }
    inline operator bool(){return a[0][0]==1&&a[1][1]==1&&a[0][1]==0&&a[1][0]==0;}
    inline bool operator < (const mat&o)const{
        for(int i:{0,1})for(int j:{0,1}) if(a[i][j]!=o.a[i][j]){
            if(a[i][j]<o.a[i][j]) return 1;
            else return 0;
        }
        return 0;
    }
    inline void output(){
        for(int i:{0,1})for(int j:{0,1}) cout<<a[i][j]<<' ';
    }
};
mat pre[maxn],ch[26][2],v[maxn];
string s;int n;
mat qpow(mat a,ll b){
    mat c(1);
    while(b){
        if(b&1) c=c*a;
        a=a*a;b>>=1;
    }return c;
}
int main(){
    std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin>>s;n=s.length();
    for(int i=0;i<26;i++){
        do{
            for(int k:{0,1})for(int j:{0,1}) ch[i][0][k][j]=rnd()%mod;
        }while(!qpow(ch[i][0],mod-1));
        ch[i][1]=qpow(ch[i][0],mod-2);
    }s=' '+s;
    for(int i=1;i<=n;i++){
        int x=s[i]-'a',&f=cnt[x];
        v[i]=ch[x][f];f^=1;
    }
    pre[0]=mat(1);
    map<mat,vector<int>> lst;
    for(int i=1;i<=n;i++) pre[i]=pre[i-1]*v[i],lst[pre[i]].push_back(i);//pre[i].output(),cout<<'\n';
    if(!pre[n]) return puts("-1"),0;
    auto dfs=[&](int l,int r,auto dfs) -> void {
        // cout<<l<<' '<<r<<'\n';
        if(l>r) return;
        auto &v=lst[pre[l]];
        int to=*prev(upper_bound(v.begin(),v.end(),r));
        // cout<<l<<' '<<r<<' '<<to<<'\n';
        assert(to>=l);
        putchar('(');
        dfs(l+1,to,dfs);
        putchar(')');
        dfs(to+2,r,dfs);
    };
    dfs(1,n,dfs);
    putchar('\n');
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 2ms
memory: 9984kb

input:

abbaaa

output:

(()())

result:

ok single line: '(()())'

Test #2:

score: 10
Accepted
time: 0ms
memory: 9872kb

input:

cbbbbccbbccbbbbbbc

output:

(((((((()))())))))

result:

ok single line: '(((((((()))())))))'

Test #3:

score: 10
Accepted
time: 2ms
memory: 9880kb

input:

ddbcbdacccbddaba

output:

-1

result:

ok single line: '-1'

Subtask #2:

score: 27
Accepted

Dependency #1:

100%
Accepted

Test #4:

score: 27
Accepted
time: 2ms
memory: 10216kb

input:

fsooskkkksokkkkossskkiffoofooikkiiiiiooikkkksookkiissiooookskffsskiiksskiikfiifkifofssooffffkfiiiifkfsiisfsofossiffissikskiikkkiikokikkffkiiksffkkiossifkiookioffoikkkoiiiooioiffkkkssfoooiiiioioskksisikkkoifiooikkkkfiffississkskiofffiffiiiosksskfffofisksksskiisikkskkkksoosiffoofoiooioooifiifssfffffoi...

output:

((((((())))(()))(((()(((()((((()(()))))((((((()((((())(())((((((((())))(()))()))((((((()((()(((()))))(())))((((((())))(((((((()())(((((())())(()()((()(((((((((()))()))(()())))()())())(()(()))))(()))))()))(((())(())))())())())))))())(()())))(())()))))))((())())))))))))(()))))())((())()))(())))((())((...

result:

ok single line: '((((((())))(()))(((()(((()((((...))(())(()))(())())))))))((())))'

Test #5:

score: 27
Accepted
time: 2ms
memory: 10168kb

input:

vvrookjqmmooqlfhnnhflrcbxuuxftajjcqdppoowsswniwsswzzvvisqqbxqniinqeeeaanojvhhttviezzxujjuxyyektlltkoouwwukcqqcifommxxorrnnfgzzyggygvzzvgtxqqxkkummpssllpubbssuubddbebttkkblzzofmmyooyfoqqlpnzznppmvbnnlrrqqlwwbeiievxcnnwppweasjhcchjcarobbogljjlqqgznffmlfabjpiipepummubbbbggzzpjjvvejvgmmqrrkffkqgefrrdbbd...

output:

()(()(((()())(((())))((((())(((()(((((()(())(((())()())(()((((()))(()()((((()(((((()((()))())((())(()(()))(())(((()())()())(()(())((()))((())()(()(()())(()()))(())((()())(()((()(())))())((())()(((()(()())())(()))((()(())(((((()))((((())((())()(((()(((((((())(((())(())()())()()))((()(()(())))((()(())...

result:

ok single line: '()(()(((()())(((())))((((())((...()(()(()))))(())()))(()()()))))'

Test #6:

score: 27
Accepted
time: 0ms
memory: 10020kb

input:

uuueeeuuueeueeeeeeeuueueueeuuuuueeeueeeeeueueueuueuueeueuuuuuuueueueeuueeueeuueeueuueeeueuueeeueueueuueuuueeeeueuuuuueuueueueuuueuuueeeeuueeueeeeeuuuueeeeeuuuueeuuuueueeueuueuuueeeeuueueueueeeeeeeuueueuuueuuuueueeuuueuuuueuuueeuueeeeueeuueuuuuuuuuueeeueuuueueeueeeeuueeuuuueuueeuuueuueeuuueeueeuueueu...

output:

((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((...

result:

ok single line: '((((((((((((((((((((((((((((((...)))))))))))))))))))))))))))))))'

Test #7:

score: 27
Accepted
time: 2ms
memory: 10020kb

input:

qeeqqqeeqqqquqeeeequuquuuqqqeqqqeeqquqqeeeuuueqqeeqqqqqeeeeeeeeeuqeqquuueeuqeqeqqueeuuuueeeeuuuqqquueuqeeeqeeeqeeqeqqequeeueqquuquqququqqqqueuqueuuuueuueeuueueeququeeeqeeqeeqqeuqeuequququuuuuueuuueeeuueeeqeuqquueuueeuquuqqqeqeuqqeqqquuueuuuuueeuuqeeeeeeeueuuuququeqqqqeeuqeuuquuueueeuuuqeqeeuqqqquuuq...

output:

((((((()()))((((()(((((()(()((((()))((((()((((((()(()))((((())))((((((()()))(((((((((())()))())(()()(((((((((((((((()))(()((((())(()))((()))))((((((((((())))(()((((((((())))())(((((((((((((())((()(((()(((((((((((((())(()(((((((()(((((((((((((()()(((((((((((()((((((((((((((()((((((()())(((()((())(()(...

result:

ok single line: '((((((()()))((((()(((((()(()((...))))((())))())))((())))))()))))'

Subtask #3:

score: 63
Accepted

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Test #8:

score: 63
Accepted
time: 0ms
memory: 10788kb

input:

jggeedfjvfppgdgqqufesgeljdjjoqqsgprqdddgueugpodpfldvgdgdpeuljfqrdrlgljugdujjdjrjevlqlqufoosjvsqvqgvruqrgsfsquqoovvvvfpofjdpvuesrqdfegguggrlvslsqjpddorjlodqflspgopeuppeoleeojlvjpddopjsouregflrfgpgqvlquqpplgrudllvdfsrplfljupveleggedljopqjjolslfpeeluvsufofpdlodgdvfvsujlgjpvggduorfforllorgsgrppvegglgver...

output:

((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()((((((((((((((((((((((((((((((((((((((((((((((((((((((((()((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()((((((((((((((((())((((((((((((((()((((((((((((((((((((((((((((((((((((((((((((()(((((((((...

result:

ok single line: '((((((((((((((((((((((((((((((...)))))))))))))))))))))))))))))))'

Test #9:

score: 63
Accepted
time: 11ms
memory: 15252kb

input:

zpujdttdnwtkfdfyddtbocyaeniizwubzgeybkccezxjldgtskmjfdywqlrihhckmbmvewoludvvmamdgkeholteaqujgssidpivwljbsnqgxltiviiwsvtekxiftlfkkudkwmbqczskkjsnilevhvdmuelnufvftyphloppctvwksjffecxblezsryszkxrjthxowwrittvjinyfkklllkydvzciiuaayomqjulladasktsyrvffdeennbwelfnhqoisiommrolzfvzkddskonisxlasgckqioouyqtsqfq...

output:

((((((((((((((((()((((((((((((((((((((()((((((((((((((((((((((((((((((((((()(((((((((((((((((()((((((((((((((((((((((((((((((((((((((((((((()(((((((((((((((((((((((((()(((((((((((((((((((((((((((((((((()(((((((((((((((((()(()((((((((((((((((((()(((()(((((((((((((()((((((((()(((((((((((((((((((((((((...

result:

ok single line: '((((((((((((((((()((((((((((((...)))))))))))))))))))))))))))))))'

Test #10:

score: 63
Accepted
time: 20ms
memory: 15604kb

input:

azekdamqaoetekbsselhazotlwwjnpxxceapyxsvgxutdtnnzzvovngkkrwvjrlddncosheotmepxghaeiakddfjzugxqunauvcbyipxtzkrjsdrjbcaozefshjwyrbdviigqvrpkkeamsvnkoyafpululfzaakbwgjkhfpnwihzeuwmydiazwjujussexlzbriochtfyvwbgpduxnkwvpycobczuuzmytnlllrvtyhzzwawtzkamqucyauxrlgthhayaidysemasybwnkjjiqoscacwsqprwjdfshttqriq...

output:

((((((((((((((((((((((((((((((()((((((((((((((((()((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()((((((((((((((((((()((((((((((((((((((((((((((((()((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()((((...

result:

ok single line: '((((((((((((((((((((((((((((((...))))))))()))))))))))))())))))))'

Test #11:

score: 63
Accepted
time: 24ms
memory: 16424kb

input:

mldshhxgdtnevvjvvvmdxxppbbrxxtpwboorjjrgpmmmnvthhjjtvbrpxpsxxsjjxtjjtpbevhhvvduprhjshccwoggsllsdcbbuubbutlojstebhrpnwsoxnopprssbuljwmxvgpprwlxnossuggmovhsggcbddprrhsthwnsleevshtnlodsjelhntswuultovcbbclndjjhnvvwewvodnmpslwnseupvccvshuusxvunnmoeeggoobbttsojjnjpvxdewnnndnlmeebprppsrppjcessehrrjnuutgpco...

output:

((((((((((((()((()((()()()(((((((()(()(((((((((()()))(((((((((()((())((((()()((((((((()((()(())((((()))(((((((((((((((((((()((((((((((((()(((((((((()(((((()((()(((((((((((()(((((((((((((((((()(((((())(((()((((((((((((((((((((((())((()((((()((()()()()((((()(((((((((()((((((((((((((((((())(((((()(((((...

result:

ok single line: '((((((((((((()((()((()()()((((...))))))))))))))()))))))()))))())'

Test #12:

score: 63
Accepted
time: 9ms
memory: 13592kb

input:

baabbabaaaaababababaabaababbbaababaabaaabbabbbaaababababbababaaaabaaaabbaaaababbabaabababababababbaabbaaabbbbbbaaabbbabbbabbaaaabbbbabaabaaabbbbabaabbbaabbbbaaaabababbbaabbbaabaabbbababbbabbbabaabbbabbaaaababaabaabbabbbbaababbabaaabaaaabbbaabaabaaabbaaabbaaaabaabbaaaabaabbbbabababaababbbaabbbbababbb...

output:

((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((...

result:

ok single line: '((((((((((((((((((((((((((((((...)))))))))))))))))))))))))))))))'

Test #13:

score: 63
Accepted
time: 6ms
memory: 13592kb

input:

baabbabaaaaababababaabaababbbaababaabaaabbabbbaaababababbababaaaabaaaabbaaaababbabaabababababababbaabbaaabbbbbbaaabbbabbbabbaaaabbbbabaabaaabbbbabaabbbaabbbbaaaabababbbaabbbaabaabbbababbbabbbabaabbbabbaaaababaabaabbabbbbaababbabaaabaaaabbbaabaabaaabbaaabbaaaabaabbaaaabaabbbbabababaababbbaabbbbababbb...

output:

((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((...

result:

ok single line: '((((((((((((((((((((((((((((((...)))))))))))))))))))))))))))))))'

Test #14:

score: 63
Accepted
time: 20ms
memory: 16004kb

input:

fbbfffbfbbgbgbfffggfbbfgfbggbbbgfgffgfgfbbfbbfbbgfbggfbbffbbfbbbffbfbfbbgbffgfgfgbbggbbfgfbfbgfgggbggbgbgfbfgbfgbggggggbffgggbffffbbbgfgffgbbgbbbgfffffbgbbgfffbbgbgbbbbgbfbfbbbbbbbfbbfgfbbffbfffgfgbgfggbffffbbgfgfbffbfbbbgffgbbgbggggbgbggggbffggbggbbgfgbfgbgfgbbfbgbbfgbgffgffggfffgfgfbggbgfbgfffbbbg...

output:

((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((...

result:

ok single line: '((((((((((((((((((((((((((((((...)))))))))))))))))))))))))))))()'

Test #15:

score: 63
Accepted
time: 10ms
memory: 12032kb

input:

aaaaaababbbaababaababbbabaabbabbaabaabaaaaaabaababbbaaaaaabaaaaaababbbbaaabbaaabaaabaabbabbabbbbababababaaabbabbabaabaaaaabbbbabbbaabbbbbbaabbaabaaaabbaabaaabababbaabaaaaabaaaaaaaaaabbbaabbaaaabbbabbabbaaabbbbabbbababbaaaaaabaabbabaaababaababbbababaaabaaaabbabaaaaabbababaabaabaabaaaaababbaabaabaabaa...

output:

((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((...

result:

ok single line: '((((((((((((((((((((((((((((((...)))))))))))))))))))))))))))))))'

Test #16:

score: 63
Accepted
time: 36ms
memory: 17272kb

input:

sccsyqrchhcltthddqhtyymrttrmqmdssyftssyyhlhsltqtcctrqqcltyhlcylqfsfqqccqhdstcrshclthdcttmqtqcttdhfyhymqdtmmqmmlyylccyrrlqhhrcsyydtdrrydsqllqcccftlqqqqlqchsccfqrrrscctchhryyfqccccyrhqrmmrmlddssfylfrlslssdtttqlsslqqldfyrtsclccdsfqcmmcyhhdmlltssryshcmmflsdydscmyfmmqyymfyqrclqqcyrfhrtlchccmryyhhtssdfdmm...

output:

(())((((()((()(()(((()((()))(((()(((()((((((((((()((()(((((((((((((((())((((((((((((((()(((((()(((((((((((((()((((()(()((()((((((((()((((())(((((((())(((((()(((()(()((()(()(((())(((((())((()()((((((((()((()((()(())((((((((()(((((())(()((()(()(((((((((((((((((((((()(((((((()((((((((((()((()()(()(((((...

result:

ok single line: '(())((((()((()(()(((()((()))((...)))))()))))()))))))))))))))))))'

Test #17:

score: 63
Accepted
time: 18ms
memory: 15632kb

input:

ovavvsmodolxnnvvvvnyyjggbddkvuuvlntjgvrrfqfjkgfqkbyiiiyxdshumxnmnksxxylkitzgooswtwidwwnfyvqbbdlvnsucpqxrrewwtkkffkpwuzrbiivqqssiaafkzzjhhpajcnuampgcovspbnlmszqigrfbbfqwnmvhryfoylvvbjhvepcppdixowicuurbjhvrmttifflliodtmmmtiitmmluaadrbnnfnjxtutbuqzivznlccuccnliolidijxnytuolnbgeuxdkwjpzwmpbvjzzschuddezz...

output:

(((()((((((((((()))()(()(()((())((((((()((((((((((((()((((((((((((((((((((((()((((((()(((((()((((((((((()(()(((()(((((((()(()(((()(((((((((((((((((((((((((((((((((())((((((((((((()(((((((()(((((((()(((((((()(()())(((((((())()((()(((()(((((((((((((((((((()((((((((((((((((((((((((((((((((((()((((()(((...

result:

ok single line: '(((()((((((((((()))()(()(()(((...)())))))))()())))))))))))()))))'

Test #18:

score: 63
Accepted
time: 37ms
memory: 17732kb

input:

slrusyssppylssldouuosrrrssslslpppplllrpossopyuuusluuooouuppllloyddlpdyldssyypploduusluuuurddryoyuldysdullsrrspyrrposddpyyodrssrrrllllulslolloullrlusslyoyyosuuddpysyprryodudpdpsoyydpylyoopsoosrssdppdlruurlpyspodyylyysyulyylssduyydlrrlrpyydpsooduoollddyuuysosslpplddoyssdpspoylrryllpyrrrsrsullurupyudos...

output:

((((((()())(())((())((()(()((((())(()(((()((((()(((((()()()(()((((((((((((()()(((()(((())(())((((((((((()(()(((()(((()(()(((()())((()(((((())(()((((((((())(()(((((((()((((((((((()(((((()((())(()(()(((()))(((((((((()((((())()((()((()(((()(((()((((()()(()(((()(())())(((((((((((((()(((()(((((((((((((((...

result:

ok single line: '((((((()())(())((())((()(()(((...))))))))))))()()))(()()))))))))'

Test #19:

score: 63
Accepted
time: 3ms
memory: 10156kb

input:

ccccsullullmmlcllmmculullzzulccuumllllzuuzmsrrzlsuulllrrlscclzzlcuzcccuuczuzzmmuuuumuumuuuzsrrrrssszuczmlcclmmcrccrcmzssssrrrllluulmmrszrrmmrrmlluuccmllmmssrruumsuummsuzzllccusmmmmsmssuzzlmmllluzuuzcccssuurrclrruuulmmlulzluummlclmmzzzscssmmcrrluuccsslssscclsslzuucrmuuccmmuumzzuumuussllmzuuzzrrrrruzc...

output:

((((((())((())(()())(((()()))((((((())(())((()((((((((()(((((()))(((()())((()(((()))())()))((())()))))(((())()((()))))(())(()(()())()))(((((()(()()())()))()))((((()((((()()()))()))))())()(()()))(())(()()()())(()(()(())))))()())(((((((((()())()(()()())())()(())((((((((()((())()())))()())(()()((())(((...

result:

ok single line: '((((((())((())(()())(((()()))(...()())))((()))))))(()))()())))))'

Test #20:

score: 63
Accepted
time: 3ms
memory: 10344kb

input:

qhhhssvggvwwgggsqwghhgssvqvgghqgsqqsswwsqvhgvwvvvgwgvssvgvvshhsssswwswgvqhqqhqhhhwwsvsssswwqqqwwqshghwhqqqvwwgsssswsswswwssvvssgqgqqvvvvgwwsqghhqshhhhqvsssvvgwhhwsqssssqgghqwssqggggssgwvqqqggggwwqgssswqswwwqvvghvshqwwqhsqqssvhssgvvqqqwqqsqwsgqggggqvwgqwqhsgvssvgvqqvghhsvqsqghhqwwwwsqgsssgvqhsswwssws...

output:

((()(((()(()(()((((())(((((((((((((((()((((((((((((((()))()(()(())()))))(((((((()()(((((((((()())(((((((()(()((((((())(()()()))(((()(()))()(((()(((())(((()((((())(((()))()(((()(((()())((((((())())((()((((()(((((((((()))(()))))())))()))()))))))(()))))))))))))())((()))()))))))())(())))))))))))((())))(...

result:

ok single line: '((()(((()(()(()((((())((((((((...(()((())()()))))))))()()(()()))'

Test #21:

score: 63
Accepted
time: 0ms
memory: 10528kb

input:

foczoiaaiikbddbtbeiaeblketbaaftzkdtikmmeatqktzjmbbddmfibbafkioobbzdbbldoqlcccctaqqlcctmqlbrdbdbrrijjejeeffkkooatizdoflorrdftkaffakdmdqdierzddcommbtticbkeebjbbjfafoejtembddfmberztklkbcqmeekrmefjjkbjokkkkkcrrbzajezzeabairbzkddfdettrkaajaztrzmcqieqbbcbbdrmmefrafbltmmmmjkttffbmfrblqcrllzltiqqierlkdocoqd...

output:

((((((()()((())((((((((((((()((((((((()(((((((((()())((()((((((()((()((((((())((()(()((((((((((()(()((()((()()(((((((((()(((((()))(((((((((()(((((()((((((((())((((((((((((((((((((((((((()(((((()(((((((()((((((((())((((((((()(((()((((((((((((((((()(()((()(((((((((())((()((((((((((((((((((((((((((((((...

result:

ok single line: '((((((()()((())((((((((((((()(...)))()(())))))))))))))))))))))))'