QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#179636#1219. 你的名字Sorting68 1829ms580660kbC++206.4kb2023-09-14 23:26:562023-09-14 23:26:57

Judging History

This is the latest submission verdict.

  • [2023-09-14 23:26:57]
  • Judged
  • Verdict: 68
  • Time: 1829ms
  • Memory: 580660kb
  • [2023-09-14 23:26:56]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef unsigned long long ull ;
typedef pair < int , int > pii ;
typedef vector < int > vi ;
#define fi first
#define se second
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());

#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()

struct SAM {
    struct state {
        int mxlen , prv , end_id ;
        map < char , int > nxt ;
        state ( ) { mxlen = end_id = 0 , prv = -1 ; nxt.clear ( ) ; }
    };
    vector < state > v ;
    int lst_vert , tp ;
    SAM ( ) {
        v.resize ( 1 ) ;
        lst_vert = tp = 0 ;
    }
    SAM ( string s ) {
        v.resize ( 1 ) ;
        lst_vert = tp = 0 ;
        int id = 0 ;
        for ( auto c : s ) {
            add_letter ( c , ++ id ) ;
        }
    }
    void add_letter ( char c , int end_id ) {
        int wh = lst_vert ;
        v.push_back ( state ( ) ) ;
        int nw = ++ tp ;
        state hh = state ( ) ;
        v[ nw ].mxlen = v[ lst_vert ].mxlen + 1 ;
        v[ nw ].end_id = end_id ;
        while ( wh >= 0 && v[ wh ].nxt.find ( c ) == v[ wh ].nxt.end ( ) ) {
            v[ wh ].nxt[ c ] = nw ;
            wh = v[ wh ].prv ;
        }
        if ( wh < 0 ) {
            v[ nw ].prv = 0 ;
        }
        else {
            int id = v[ wh ].nxt[ c ] ;
            if ( v[ id ].mxlen == v[ wh ].mxlen + 1 ) {
                v[ nw ].prv = id ;
            }
            else {
                int aux = ++ tp ;
                v.push_back ( state ( ) ) ;
                int rem = v[ id ].prv ;
                v[ id ].prv = v[ nw ].prv = aux ;
                v[ aux ].mxlen = v[ wh ].mxlen + 1 ;
                v[ aux ].prv = rem ;
                v[ aux ].nxt = v[ id ].nxt ;
                while ( wh >= 0 && v[ wh ].nxt[ c ] == id ) {
                    v[ wh ].nxt[ c ] = aux ;
                    wh = v[ wh ].prv ;
                }
            }
        }
        lst_vert = nw ;
    }
};

const int MAXN = 5e5 + 7 ;

int n ;
string a ;
SAM aux ;

struct node {
    int cnt , pl , pr ;
    node ( ) { cnt = pl = pr = 0 ; }
};
node tr[ 60 * MAXN ] ;
int tp ;
int root[ 3 * MAXN ] ;

vector < int > ord ;
bool seen[ 3 * MAXN ] ;
void get_ord ( int x , SAM &ch ) {
    seen[ x ] = true ;
    for ( auto [ c , y ] : ch.v[ x ].nxt ) {
        if ( y == 0 || seen[ y ] == true ) { continue ; }
        get_ord ( y , ch ) ;
    }
    ord.push_back ( x ) ;
}

int update ( int w , int l , int r , int pos ) {
    int ret = ++ tp ;
    tr[ ret ].cnt = tr[ w ].cnt + 1 , tr[ ret ].pl = tr[ w ].pl , tr[ ret ].pr = tr[ w ].pr ;
    if ( l == r ) { return ret ; }
    int mid = ( l + r ) / 2 ;
    if ( pos <= mid ) { tr[ ret ].pl = update ( tr[ w ].pl , l , mid , pos ) ; }
    else { tr[ ret ].pr = update ( tr[ w ].pr , mid + 1 , r , pos ) ; }
    return ret ;
}

int merge ( int x , int y , int l , int r ) {
    if ( x == 0 ) { return y ; }
    if ( y == 0 ) { return x ; }
    int ret = ++ tp ;
    tr[ ret ].cnt = tr[ x ].cnt + tr[ y ].cnt ;
    if ( l == r ) { return ret ; }
    int mid = ( l + r ) / 2 ;
    tr[ ret ].pl = merge ( tr[ x ].pl , tr[ y ].pl , l , mid ) ;
    tr[ ret ].pr = merge ( tr[ x ].pr , tr[ y ].pr , mid + 1 , r ) ;
    return ret ;
}
             
void init ( ) {
    get_ord ( 0 , aux ) ;
    for ( auto x : ord ) {
        if ( aux.v[ x ].end_id > 0 ) {
            root[ x ] = update ( root[ x ] , 1 , n , aux.v[ x ].end_id ) ;
        }
        if ( aux.v[ x ].prv != -1 ) {
            root[ aux.v[ x ].prv ] = merge ( root[ aux.v[ x ].prv ] , root[ x ] , 1 , n ) ;
        }
    }
}

int query ( int w , int l , int r , int en ) {
    if ( w == 0 ) { return 0 ; }
    if ( tr[ w ].cnt == 0 ) { return 0 ; }
    if ( l > en ) { return 0 ; }
    if ( l == r ) { return l ; }
    int mid = ( l + r ) / 2 ;
    int ret = query ( tr[ w ].pr , mid + 1 , r , en ) ;
    if ( ret != 0 ) { return ret ; }
    return query ( tr[ w ].pl , l , mid , en ) ;
}

int mx[ MAXN ] ;
int prop[ 3 * MAXN ] ;

void solve ( ) {
    cin >> a ;
    n = a.size ( ) ;
    aux = SAM ( a ) ;
    init ( ) ;
    int q ; cin >> q ;
    while ( q -- ) {
        string s ;
        int l , r ;
        cin >> s >> l >> r ;
        int sz = s.size ( ) ;
        int wh = 0 ;
        int val = 0 ;
        for ( int i = 0 ; i < sz ; ++ i ) {
            while ( wh >= 0 && aux.v[ wh ].nxt.find ( s[ i ] ) == aux.v[ wh ].nxt.end ( ) ) {
                wh = aux.v[ wh ].prv ;
            }
            if ( wh == -1 ) {
                mx[ i + 1 ] = 0 ;
                wh = val = 0 ;
            }
            else {
                val = min ( val , aux.v[ wh ].mxlen ) + 1 ;
                wh = aux.v[ wh ].nxt[ s[ i ] ] ;
                while ( wh >= 0 ) {
                    int sr = query ( root[ wh ] , 1 , n , r ) ;
                    int lo = 1 ;
                    if ( aux.v[ wh ].prv != -1 ) { lo = aux.v[ aux.v[ wh ].prv ].mxlen + 1 ; }
                    if ( l + lo - 1 > sr ) {
                        wh = aux.v[ wh ].prv ;
                    }
                    else { break ; }
                }
                if ( wh < 0 ) {
                    mx[ i + 1 ] = 0 ;
                    wh = val = 0 ;
                }
                else {
                    int hh = query ( root[ wh ] , 1 , n , r ) ;
                    val = mx[ i + 1 ] = min ( val , hh - l + 1 ) ;
                }
            }
        }
        SAM hh = SAM ( s ) ;
        for ( int i = 1 ; i <= hh.tp ; ++ i ) {
            prop[ i ] = 0 ;
            if ( hh.v[ i ].end_id > 0 ) {
                prop[ i ] = mx[ hh.v[ i ].end_id ] ;
            }
        }
        ord.clear ( ) ;
        for ( int j = 0 ; j <= hh.tp ; ++ j ) { seen[ j ] = false ; }
        get_ord ( 0 , hh ) ;
        for ( auto x : ord ) {
            if ( hh.v[ x ].prv != -1 ) { 
                prop[ hh.v[ x ].prv ] = max ( prop[ hh.v[ x ].prv ] , prop[ x ] ) ;
            }
        }
        ll ans = 0 ;
        for ( int j = 1 ; j <= hh.tp ; ++ j ) {
            int lo = 1 ;
            if ( hh.v[ j ].prv != -1 ) {
                lo = hh.v[ hh.v[ j ].prv ].mxlen + 1 ;
            }
            if ( hh.v[ j ].mxlen > prop[ j ] ) {
                ans += hh.v[ j ].mxlen - max ( lo - 1 , prop[ j ] ) ;
            }
        }
        cout << ans << "\n" ;
    }
}

int main ( ) {
    ios_base :: sync_with_stdio ( false ) ;
    cin.tie ( NULL ) ;
    int t = 1 ; // cin >> t ;
    while ( t -- ) { solve ( ) ; }
    return 0 ;
}


詳細信息

Test #1:

score: 4
Accepted
time: 20ms
memory: 356116kb

input:

aadccabccdcddcdabbbdbdaabcadbcadcccdcadbadaabaaacbacdcdccdcdabbbdbdaadcabdabdbacabdadadbdadbdcddbcbcbaddaaaabccdaddcaaabdbabbcabdbcdccaaddbdcdbbcaccdababdbbdabdcbcccacbddddaacbaccaacadbdbdcabc
190
acdabdbcdcabbacbdacaccbcaddadabccdaabdcdcbcdaadccadcdcaccdcaadcaaddccddbbbadbadbdcaacccdbbbcbdbabcacacb...

output:

18746
19133
18512
18928
17590
17762
17395
18333
17397
18159
18708
19076
18526
18931
17953
18684
17555
17937
17602
18932
17972
17768
17746
18939
18728
18167
17957
18718
18486
18170
17597
18174
17368
17591
17579
18364
18741
19150
17426
18514
17961
17398
18123
18742
17775
17402
19132
18151
18738
17418
...

result:

ok 190 lines

Test #2:

score: 4
Accepted
time: 31ms
memory: 355548kb

input:

adbdadddcaddcdaacabadbbbacccaadddcdabaaccbbcbacccbdcdbaabbcbddcdadcabcacccccddbdabbbaacaadcdaddbabcabbbddcdccbaddbbbcdbcabdaaabbdaaadcdacbabccdadbabbdaddcbccddadbdcabcdaabbbabcdacbcaaccabcbaabcbcddcddbbbbaadacbddabbdddabbddbcbdabccbbdacbbdccdbddcdcdcadadbbacbdabbbcddcbadcdddaaabdbbdadddaabbdbaaccdab...

output:

17803
18533
18159
17409
17751
18527
17214
18141
18343
17601
18158
17623
18721
18552
18945
17413
17228
17577
18527
18694
17413
17564
17999
18521
18545
17400
18354
17384
18378
18159
17415
18907
17410
17594
17365
18126
17764
18370
17220
18352
18338
17616
17400
17244
18945
18201
17957
17774
18918
17970
...

result:

ok 191 lines

Test #3:

score: 4
Accepted
time: 36ms
memory: 356096kb

input:

abbabcabadbcbbccbabdcbbacdddcccddadabcadabaadcaddbaaccacaabcbbbcabbbdcbadbaadccdbbdbaaccadbbabdccbcaabbaaccabcbabbcaacbdbbadadbdcbddbbcddcaaacbadabbaacaadddacbadbbddaabbcaccdbdabbcdbbccadccaadabccdaddcabbabadadabdbbadacadcaacbcdccdccaddaacdccbacadaccdbccddacbdcabadbcbbaaccbbabcddccdaabacbcbdbcbdbddb...

output:

18912
18173
17219
18910
18551
18349
17395
17373
17739
17934
17975
17576
17237
18552
18712
18941
17913
17203
17385
18945
18568
17180
18135
17208
17989
17984
18347
17798
17974
18909
18159
18724
18558
18540
18761
17987
18512
18388
18171
18352
17435
18936
18151
17765
17772
17225
18750
18553
18166
17965
...

result:

ok 198 lines

Test #4:

score: 4
Accepted
time: 212ms
memory: 357060kb

input:

ddadbccdbdaacdacabdadadcbdbbadddcadbdadddcaddbbacbddddacccccbcabbbdaddcacbbcaaadaaddadadddbadabbadcdbacbdaddadbbbbccdbacaaabcacccdccaaabaddababacdbaccbbbddaabaacadbcddbbcaaccbbbbbdaddaabddbcdbaacbcadbdbccbcbbdacdacbbbcdccadcdbaacbcaadbabadcaccabdddacacabdbcdadccaddcdcaaabcacccbdbdadcbdcabddabbdabdcd...

output:

2894585
2991616
2979335
3050618
2815847
3097694
2950143
2865797
2830060
2947789
2811062
3067958
3030865
2892211
2861038
2977006
3070490
3023569
3023484
2913801
2913793
2825275
2825292
2923566
2880180
2991687
3028451
3072797
2925914
2957369
2837214
3026044
3035938
3033378
2996555
2994152
3043224
2964...

result:

ok 197 lines

Test #5:

score: 4
Accepted
time: 207ms
memory: 356004kb

input:

bacccaaabdacddbbabdabccbdabddccdbcdcdbdbccbddbbcaaddaacdcaaadcbcaddbabbaddaaaddaaccdcaccacababccaddaccbcacbbdccabaacacdcbccbdbadcdbbbbacacdcbbbbaadbcbaadbcadadbbddbccaadbdbcbabdaacdcdacdbcdbdccdabbacbddabcabccbbabcddbdddcaabbcaddbbdabcaddbbcaadabcbdcabcacdaabbdddadaacbbccdbccdabbdcaddddcccdaaaaddada...

output:

2969627
2930836
3090327
2969685
2940547
2959956
2913833
2822831
3001405
2938139
3023485
2998971
2952629
3075473
2844312
2858668
2911472
3053170
2984323
2950225
2984348
2832415
2868277
2962343
3003817
3006315
2889901
3045670
3097695
3038344
2822860
3090336
2933267
3028519
2933159
3060548
2889805
2996...

result:

ok 191 lines

Test #6:

score: 4
Accepted
time: 894ms
memory: 578580kb

input:

jmoifvagmonbuxznpdxtcgfycygerridhihasxonifvcorwbbadpyjvgyveicsfcrcjjecfktxuumtvfjxocbgeoeefrzlykfqeaarrlhkjovevehnezlcjikjjjfuxfoclvirrbctlicoitgwnphfzgzepxyejlsijruxxdvzahqjpaqhgcumtjnwkbskyengdgzbtxteacjoyvndwiturrdtlcyccbckhmlfyqohfcjvzhtcuqxxpexkvlckohvidmwkghiijakocqyjskcfoxxzffzgtylbiyythobvdx...

output:

124863337763

result:

ok single line: '124863337763'

Test #7:

score: 4
Accepted
time: 855ms
memory: 580660kb

input:

jxfsgnlqidcnbfleihizzderbbyzminbutjjknmojrymnghyunksfsqtfijisxyxfaygactkupfrpnugcrvhseqxpdiyrzrzanctqtygvhpumvlxwmvduwbysmkzpckcgbjxmlgyfhdpdjqehloisnpilhpshexuljbjlnkcbkjcnpudmycjigdirokeyvcvkmkrsyjbftizewmcfyuxghxqmwmqdvhswdnsjvybvefdnupdkrqcvnlnfbybifdovvapsdjoppvzvkmxjzevqifzclignjponvndafghncmm...

output:

124869633540

result:

ok single line: '124869633540'

Test #8:

score: 4
Accepted
time: 161ms
memory: 383100kb

input:

lbmckmhibhhmgglmcbfkclhacldibgaadakchjabmimjlidhhldljfmkegaieahdbjccdhjefbfebedjiefeflbejkihgjbfgeflchegbamekdlaaacfgabdabmfgjgfmjailbdgbhfbmaaclcidkkgldmejjhcmahhmgkimgfclcgkkalgdcmaiieakmkmflhbdmmibkbkfcjieekbccheahgegkfchfchemgkfghmiabllamichbbdbhjlcfafkijgihgmekhkdebkfbkdagdbhcgjmkamlfhmkjgmfafl...

output:

199927488
12
4
10
8
12
7
10
11
8
7
12
9
12
11
6
10
10
6
11
5
11
8
9
8
11
9
5
11
11
10
2
4
10
13
9
11
8
8
10
10
11
10
12
11
10
7
10
9
6
10
9
12
10
9
11
12
11
11
11
10
7
8
12
10
12
9
7
5
10
12
8
8
8
10
7
12
7
11
12
9
10
7
10
12
10
13
9
8
9
8
8
9
9
11
11
8
6
4
0
6
4
8
10
9
13
9
12
13
7
7
10
11
8
7
10
8...

result:

ok 4411 lines

Test #9:

score: 4
Accepted
time: 236ms
memory: 382440kb

input:

uwhchfeaycdqlasqdrbylqxaridtgcmyrmkdfdahthdwvkojhqxacqomockaqqoanitzhkmcgcdvniteghvxiyjrqziqjiuljewrdwaabtqwfrfalgloikpxcllbngrzphwcsdmiflqvznvuvxivxsvpqfgkefowexaoplhqfenuwawvwhtmocrmqifqdbyudhmkgiucudnxbjaucppbzobxpmqufhvexdvyjiefmxlfpczvqiuqucvnryxicvusurdiaavudphnnmfqgtichpwfvpaglqqzlmbwwwjohdgx...

output:

199945526
2
3
2
3
3
1
3
3
3
2
3
3
3
3
3
3
3
3
3
2
3
3
3
3
3
2
3
2
2
3
2
3
2
2
2
3
2
3
2
2
2
3
2
1
3
3
3
1
3
3
2
3
2
3
2
3
2
2
3
2
3
3
2
1
3
2
3
3
2
3
3
1
3
3
3
3
2
2
3
2
3
0
3
2
3
2
3
3
3
3
3
2
3
0
3
3
3
2
3
2
3
3
3
3
2
3
3
3
2
3
3
3
3
3
3
3
2
3
2
1
3
3
3
2
2
3
2
3
3
3
3
3
3
3
2
3
2
3
2
3
2
2
2
4
2
...

result:

ok 5706 lines

Test #10:

score: 4
Accepted
time: 404ms
memory: 410668kb

input:

kimblfhedhamehaaacifgbgflkkldkalaakkhlaiejmeccmcffablhblmggjdmkbhljkkhgfjklieakmkjaamgikmccfkfghljahlkijgjdaechcbifailjcglkkedlgicjebfhiebkfciljkeacceejmkaalhcajfhfmkcecdklbdajdlfikkhiekdbebjbbdfgjcjhfbkclbhbbhjfdffegebkjfkcdilemclilbhflaihgihcgkldcbaakhdjhbekibbigibjdmjbbfalhccmddmckgljfmhgjbalbdjg...

output:

799877758
11
1
11
13
12
10
10
8
10
7
13
8
9
12
11
11
1
14
10
7
2
8
8
8
11
4
9
10
9
11
10
4
8
6
2
11
12
10
7
8
10
12
10
7
0
10
11
4
7
6
8
1
4
5
10
10
6
9
11
11
9
4
11
11
11
12
12
8
11
12
12
8
11
12
8
9
6
12
7
8
8
9
8
9
11
10
7
13
9
11
12
10
11
11
11
9
8
9
2
13
8
12
9
8
8
3
10
12
12
11
10
8
11
9
10
11...

result:

ok 8521 lines

Test #11:

score: 4
Accepted
time: 580ms
memory: 409784kb

input:

hpfxngoxndlosbzylksgzehfhkodfvqwwbtwlreetgeusomoymlaukhqqeqhfawfvuqjbwyrtwwjzmrtrnhvibtibiachlutcqbsydmynzxzdrkydyyekbmezwhvvfngnlklzdjpgbpjatahwuvoluqjoefktvlwdtynwprfekbpvgqtwmwneaofpktxfudwpibhlqmiybqbvsfsywlbktjcqvzwxtddkmliwukvkqsdssszsbmtnpynoohpgclvufblcdvqwrpjtuayinwqppbuidyynbpaolisqodbrqqt...

output:

799884036
3
2
2
1
3
2
3
2
1
3
3
2
2
2
3
2
3
1
3
2
2
2
3
2
2
1
3
3
3
2
3
0
3
1
2
3
2
2
2
1
3
2
0
3
3
2
2
3
2
1
3
3
1
2
3
2
2
2
2
2
2
3
3
3
3
2
2
2
2
2
3
3
3
1
2
2
3
2
3
1
3
2
3
3
2
2
2
2
2
2
0
2
2
2
3
2
2
2
2
3
2
3
3
2
3
3
3
2
2
2
2
1
3
3
3
3
3
2
2
2
3
2
2
3
2
3
2
2
2
3
3
3
2
3
3
2
2
1
3
3
2
3
0
3
3
...

result:

ok 11413 lines

Test #12:

score: 4
Accepted
time: 603ms
memory: 443476kb

input:

cdfmjmimggmlmabjlakafafdgkbdkaclfemhajdamjkliajhmajfidkghmejelfkjedddkcgbdidelhghbabckiihdjhdjhakmeldjbikdagdfhalfikeggefcmehhgccilmaehhkagafafaegjgakjekcbhbbjgfhimhmlblgmeddfffdhfgmiacadfhglhjaekdaeacdbfmlcjfffbkcbffljjkbhigejmmmhkaljcljibgekjfhefmbjilcahefblblgeledddgemdgihfecclicgbkmilmifflllhmmc...

output:

1799824843
7
13
11
8
5
12
12
7
12
8
7
10
10
7
7
5
10
0
1
8
5
4
8
1
7
11
7
8
9
11
11
9
8
5
10
10
12
11
10
12
10
7
0
12
11
12
10
10
6
11
5
12
10
10
7
5
10
10
11
10
12
7
7
8
11
8
13
10
10
11
6
10
11
13
13
7
13
8
12
4
11
6
7
11
10
13
5
7
8
2
6
8
6
8
14
11
5
3
8
12
8
9
12
7
9
11
9
9
11
9
8
9
7
4
7
11
11
...

result:

ok 12631 lines

Test #13:

score: 4
Accepted
time: 974ms
memory: 438300kb

input:

ophmmxojwyabxitozutwdxkmleazyhkqzfhqtdjggpjclzkhcerzmpdkprqjkmnpvccyajlwcohqgzqticihosjhxmwymdzoqnawgmtegjqyrngnqcheacmkgbrwsfldsmlnqjkocblhrnwguaexvnfvrceexfqpzumxsuuhfhdhujqoqdxrkknnhiygrabiqspaqdqreiswbcqdjnyqijdzolltfiiismxltjukwuixllitlyjglwwqekrlbkbwutvnifampunpzmpmwyclwxwgrowvnbqqmkreqhrwgvey...

output:

1799817649
2
1
0
1
2
3
2
2
3
1
1
2
3
1
1
3
2
2
3
3
3
1
2
3
2
2
3
1
1
3
2
1
2
3
2
2
3
2
3
2
2
2
1
3
3
1
2
3
3
2
1
2
2
2
2
3
2
1
1
2
3
2
0
1
2
2
2
2
2
3
2
3
1
3
3
3
3
2
3
2
2
2
2
2
3
2
3
2
3
2
2
2
2
2
3
3
1
2
2
3
2
1
3
3
2
3
2
2
1
1
3
3
2
2
2
2
1
2
3
2
1
2
1
3
2
2
2
3
2
2
3
2
1
2
2
3
2
1
3
3
3
2
1
1
3...

result:

ok 17118 lines

Test #14:

score: 4
Accepted
time: 853ms
memory: 470728kb

input:

lbmafbiicbjcmhbbmbabkgmbafmmhjldiifkmhejgmdcbijilcaidajjjebklkikjdjefalfkemjmbifalacllkcehbgkdkabiiefmhjcimlmckcbebidhddclhhlabdalegkfhcdbejbdmbhbfgelmkfdbkbdaclahbfggijmbgigilebmbijddfkjbafdjghijiibljgclgbciijhmjdhcjelmhiecaiahkhledfbekdlmcdceecckhkebclhilgbikmfgjmjgflmffkdjjkbcaemagedmcjajgikgefga...

output:

3199770934
9
9
11
8
9
10
10
13
9
10
8
11
11
10
11
8
10
10
11
8
10
4
4
11
11
9
11
8
11
11
4
12
7
12
11
11
12
8
11
8
6
1
10
10
7
6
11
10
6
11
10
12
8
7
4
11
5
7
11
10
4
10
3
6
12
13
10
8
9
8
12
5
12
10
4
10
10
8
10
8
10
6
14
10
0
10
10
10
12
5
8
1
10
9
11
12
9
5
10
6
9
8
6
9
12
10
12
10
8
11
11
12
5
1...

result:

ok 16741 lines

Test #15:

score: 4
Accepted
time: 1335ms
memory: 463904kb

input:

dsppfaesydhozppylwmfzcvsllhggovukeeepvtiodzzdcmlauhymvxijszrobdecuhxjsivtwjtmvphssgvyifmixgddeuofabohugyfnnqbtsjrynkvtvcqkrhwovooktcfwmxagrxgekxdgldaqffybwmdkeykyocudevwdojhcbhipfwclhzmtoyznnbdadomffoaxihkuojezabjppeyzkgwjgcpvuuxvojahfrdeybcklvqwvfftcwkxqfhbddbxfduvitycznkuzgukryyhktzoslzqiiggugpwvr...

output:

3199747543
2
1
2
1
3
3
0
2
1
2
1
2
0
2
2
1
2
2
0
1
0
2
1
2
1
2
3
2
2
2
1
2
2
2
1
3
1
2
1
2
2
2
2
2
1
1
1
3
1
1
3
1
2
3
2
1
2
2
2
1
2
1
1
1
2
2
2
2
1
2
2
2
2
2
3
2
2
2
2
3
2
1
1
2
2
3
3
2
2
1
2
1
3
2
1
2
3
1
3
1
3
2
2
3
2
1
2
2
3
2
2
2
2
3
3
1
1
3
0
1
1
2
1
1
1
2
1
2
2
0
1
1
3
2
2
3
2
2
2
3
3
1
2
2
2...

result:

ok 22825 lines

Test #16:

score: 4
Accepted
time: 1031ms
memory: 499680kb

input:

lgcjmilcjkfljihhadhcgcljecggdihjjihgdmbgggmdmfligahflfffcbcmfjlfmamfmcllfgffcciihhcfdihlbgbklmkjacjkhjajhaijifebillabigdeichhklajlechjhbeaiahhidemiaaaehkkaelabbdchficchchdcljbbbdmjfldkmjledjkkhldjjagdimadbdkkmcblkgfbmghieiiaamicjlemabecdemjbbhjjadfhlbaaglbfbbbilljmfjmadcmckfegfalkacbkjkafcgaklgabjkm...

output:

4999715467
11
11
11
8
9
0
10
0
10
12
10
11
11
8
11
11
12
9
9
10
5
11
9
9
8
12
12
11
9
10
12
10
8
12
7
7
11
4
11
0
8
10
6
12
5
8
8
12
3
4
7
11
10
8
8
10
10
5
11
10
9
10
12
8
1
12
9
11
11
13
10
6
8
4
9
10
11
11
12
7
4
10
12
4
0
10
8
6
12
11
10
8
10
11
10
9
11
8
5
13
11
10
8
11
10
12
11
12
9
7
10
8
6
1...

result:

ok 20852 lines

Test #17:

score: 4
Accepted
time: 1829ms
memory: 489340kb

input:

crouxgkvirnjrytirundlljrgfwtazivrwzxxwditbfcooymmlaqvtisxnwbhhdusjrqtvebvgmuaietaotldzzsrqtplqfucfyjpfrohwraeeufvpetorvakablkyvvnwetsrqjlxhmjwgqekapdrvcymvxdzojvbsvcjqrjsdnimathoxcldskndebsfnoqpwxjiicaqdaxhmfnozvwhezimqwnwaoktflkfpdqyhuwtdtgqanymowveuxayebwbjeliulrglhaxwgmgvgiqwqvrkwetmdvkshxwpobakc...

output:

4999675655
3
1
1
2
1
2
1
2
3
2
2
1
2
2
1
3
1
2
1
1
1
2
2
2
2
1
3
2
2
2
0
1
1
1
2
1
3
2
3
2
2
3
1
1
2
3
1
2
2
2
1
2
1
2
1
2
2
2
2
3
2
1
2
1
1
1
1
2
2
3
1
1
2
1
2
2
1
2
2
2
1
3
1
1
1
1
2
1
1
2
2
1
2
2
1
1
2
2
2
2
2
2
1
2
0
2
2
0
2
2
1
1
2
2
3
2
3
2
2
1
2
1
3
2
1
1
1
2
3
2
2
2
3
1
1
2
2
2
2
2
1
1
2
3
1...

result:

ok 28531 lines

Test #18:

score: 0
Wrong Answer
time: 736ms
memory: 427364kb

input:

hlheiljjdhhlgihkakdbmjjkjbihblhabaaafedcjickgbmimhldcfdgaeaemhheclgeglffkkiklgalagllffkjkkjbkllkgkkbblficjmklljcfallcicmfdflgebfjeacjejeedmimfdeiadbegfkckiaffagigmckdkihdikgilgehmaglhiddljghmfhgikfkgmfkadekgfalhlemfkdeggcdfkhmjdcdabmeebblbgeflbhkcjgdgadlbfmdebkhhhfajjiflejijamgjekelmjhcmakcglmhafdai...

output:

4999734089
7
12
4
10
8
11
12
8
10
10
4
12
8
11
8
7
10
4
4
8
11
7
7
7
8
3
11
5
11
10
12
9
12
11
10
11
10
4
11
11
7
4
9
11
10
12
13
8
8
11
4
10
5
11
8
10
11
12
10
10
11
10
9
11
12
1
8
12
8
8
5
9
4
0
12
12
11
7
8
9
11
9
9
11
6
8
10
7
8
12
11
4
8
8
5
10
9
7
10
13
10
9
8
11
9
9
1
10
7
12
9
9
11
4
12
11
1...

result:

wrong answer 1st lines differ - expected: '4999734984', found: '4999734089'

Test #19:

score: 0
Wrong Answer
time: 860ms
memory: 449964kb

input:

hcickbjbggigfjddcmijgfbafdebdkcldbibaaegkhmdeibkjdjigbmfelkbdablaccmeblcgikdglmllmdagaaaikfjhdcldhmhmiiiccbhehdhbkjdgkkjhfkflckidfibicfihaagficicjkbiiejddegmcahacchfgmkmmlehbelhlmbkamelfjhkmgfljbaffjjfmfhmhafjhhhdlgfggbilkkcghfaalllcdeffbbjichaiedagaalehkcaglcacgldciahdgehibefmghedciddglfbbmdigdbjij...

output:

4999738161
11
4
10
8
10
13
7
7
7
12
8
11
7
5
12
10
4
6
6
10
12
1
10
1
12
4
12
11
11
6
0
11
8
8
3
10
12
14
12
9
10
11
12
11
7
12
8
5
9
4
11
12
7
7
10
0
12
11
11
8
5
12
9
8
10
4
5
12
8
10
9
8
8
7
11
8
7
7
9
8
10
13
10
4
6
10
13
12
4
5
12
11
0
9
6
9
9
12
10
12
12
8
1
9
9
13
7
8
0
12
13
11
11
11
7
4
11
...

result:

wrong answer 1st lines differ - expected: '4999739719', found: '4999738161'

Test #20:

score: 0
Wrong Answer
time: 978ms
memory: 473228kb

input:

cjhkkbhdfmbagemlcmcdclghhcebjlaikgbdlbkedeckmimkeffkjfljmghahfgeihehlfhicjckhjmidafdkhfgehjdgdclckchjddkglaijcfcmigkgmhkmggelagbkbkikaghbadbfeifkemehhcljcfjeljejeehbklflekflaedfeclhidaahikdfaeljbhbaffkdblmecidjglkddkmecifgccmjkjhjecgaklmemfcfemlfmbkljjbakdhchehfhaelhgkicdbhgddcfjeikimklccbdmccjiilhf...

output:

4999718044
11
11
13
11
12
8
11
7
10
8
1
7
12
10
9
13
11
12
5
10
5
11
10
9
10
13
7
10
9
10
11
10
10
10
10
9
9
12
12
10
10
12
10
12
11
9
13
9
11
4
9
11
7
8
12
12
13
11
0
4
11
9
8
5
12
10
9
1
4
0
7
11
10
13
11
8
5
8
0
10
11
7
7
5
10
10
11
11
9
12
4
0
11
10
4
12
10
9
10
10
11
6
10
10
7
12
10
11
9
8
10
1...

result:

wrong answer 1st lines differ - expected: '4999718204', found: '4999718044'

Test #21:

score: 0
Wrong Answer
time: 1139ms
memory: 499084kb

input:

acdalbjachemiccjijekjladlmgcdibegjemfggmcajmkdfaicklclhhjjiifdjkglcdieahidalajicmabkejeggmjdacmljghlicficlaidacjegkhgdmalfbgakblgfbglebhjmkccfgkdkcbgddfgcmkkddlmlikljhmcgfddgkfhddkiekkaefbedjhglclfgebfddlbkkadhlahccmbgjagkkchemmhgbcjkcjdgbmbfhmhgckffedkkllkemkegjhbkijhkjmckkgcccebelfdikbfeigdflebkck...

output:

4999757011
8
12
9
8
10
12
12
6
12
11
4
11
10
10
9
11
10
11
11
7
11
7
5
5
11
9
12
12
11
9
9
10
10
10
3
11
11
10
11
11
10
8
12
8
8
10
9
8
4
8
13
13
1
8
11
5
8
11
10
3
9
10
11
7
12
0
10
10
7
11
8
13
12
7
3
10
13
7
11
10
10
9
10
0
10
2
12
4
8
11
11
11
11
10
12
14
5
7
10
8
12
8
11
12
10
13
11
11
11
11
9
...

result:

wrong answer 1st lines differ - expected: '4999757046', found: '4999757011'

Test #22:

score: 0
Wrong Answer
time: 1184ms
memory: 492688kb

input:

mddlmgjdadiajebkkjdcfcaemmacbeefbiheblhihlahcilkgcgcgbgbkdddbiedlejkaibalfggglkghmddiiikfabgmggecdmifaegcmkfcmlcfhlecifdiejflclehcbajacmakchcekkiddljfdlejgefbgkgicbdjamafjfgcdmhaejffmdaedaidabihdckhjdkfdclaafcibjfidakllflmejfaeeilaehkicmifjcdiagiihchgefafeaabbihmkddcaembjgjdeljjldagjgghammkfagahdjgb...

output:

4999718651
10
11
0
13
10
12
12
10
11
5
11
11
9
9
6
10
12
12
11
8
11
13
12
9
11
8
5
11
7
11
10
10
11
6
9
12
12
7
0
8
10
13
11
7
12
7
10
5
11
11
10
11
11
12
10
9
12
9
10
9
10
12
10
10
7
5
11
10
10
11
5
11
7
7
11
7
10
9
13
0
10
10
1
4
8
10
9
9
10
10
9
8
12
8
9
10
9
8
8
8
8
10
4
0
7
11
9
7
9
9
12
11
7
1...

result:

wrong answer 1st lines differ - expected: '4999718831', found: '4999718651'

Test #23:

score: 0
Wrong Answer
time: 1155ms
memory: 491972kb

input:

llfdgmcekbmbimkccddilecgmlimhkklijdgcfjcdkblbglbaaegedfeihjfgigigfbajgakjmmafechejfihfmdkidmlfdcejkkielgcakckilmlgiklmlalklfdcgkhlmlhkjbkhmdkbhmbfidfmccicgcbejmklcmelcigfjjiaifebbdimekgaglhejaadaglhahfkmkljkfakaifihfihikecehmafbgicelabajgghlmffhgfciclmhmbfhbkbbffmikkeadafebkjkdcidbgadmiaelbhkegimmbf...

output:

4999717891
11
8
10
9
10
10
8
11
10
10
12
9
0
9
12
8
4
10
11
10
9
13
10
8
10
10
11
7
10
12
12
10
11
9
11
14
10
8
13
12
11
9
12
6
4
11
12
12
10
12
9
10
11
8
9
12
8
10
6
10
8
10
13
9
8
10
7
10
9
1
11
11
1
11
10
9
7
7
9
12
8
8
12
10
12
4
10
12
11
5
5
4
9
10
12
11
9
11
12
11
11
13
7
10
0
10
13
0
11
12
10...

result:

wrong answer 1st lines differ - expected: '4999718003', found: '4999717891'

Test #24:

score: 0
Wrong Answer
time: 1166ms
memory: 494140kb

input:

dhblhcfekgfmbjkhalldhjckleeffihfallgiafelkkehflcmbikdiijmajkeaghlddammajjdffieiidbgedfekciajfflgbgegmfmaljamaliihmjladahiglmkafmiiflcbhbhceimhmhheeidaejgaecmahcmchclijjdjajmkjgjdgkhmljmjlgadflbdkdkgbggdddicllcfkdmajigmglkfcllijleblcaabkajjghhdgkdbllmjhahjecccfhcgmfemljbkamhgbehjkfffaickeagejjhkgmimb...

output:

4999724199
10
11
9
0
8
7
10
11
11
10
11
11
10
11
11
10
5
4
10
10
11
9
7
10
10
8
11
10
8
11
9
10
8
9
11
6
11
12
10
10
12
7
8
11
0
9
12
10
1
12
8
9
8
11
11
12
12
12
10
10
11
7
0
11
7
12
11
11
13
9
10
10
10
9
12
4
8
8
3
5
4
11
5
11
12
9
5
12
10
9
8
11
14
9
12
12
9
8
10
0
11
8
10
12
12
13
6
9
11
10
12
9...

result:

wrong answer 1st lines differ - expected: '4999724403', found: '4999724199'

Test #25:

score: 0
Wrong Answer
time: 1140ms
memory: 495404kb

input:

iiafeelfecahcjmkadhjkdmmelhmaiafglhiabmlafgmackbbkgfdhdhlageljhmlmehhjgbgkjmbaiffjhcfceiidghmggkhlhkcjdjiehfdcjdlkblgbkcdahgiccjiimggkdlhlkgddbiigbjhbdblbggaealbkldjbfdecmcijdfajlgccfbldbkjmbcmkklfmjfblbhieibecfgjcbchkegbdamflhfjfdgjglkakkgheakegkhlllmhljekmidlhfcmjlgmmajmgjmmlfkhhbklgliejcikjehdijd...

output:

4999716985
12
12
10
7
11
12
10
5
11
8
7
10
11
10
10
11
4
11
6
6
13
11
4
5
9
12
10
8
11
13
10
8
9
12
2
11
12
9
9
11
13
10
12
10
10
11
8
11
10
9
10
5
11
10
8
0
7
10
3
11
10
12
9
7
10
8
12
10
12
9
1
7
5
10
9
11
8
11
11
9
8
11
9
10
4
11
10
10
9
0
13
10
12
12
9
7
10
4
0
10
10
11
4
9
11
10
5
10
10
10
11
1...

result:

wrong answer 1st lines differ - expected: '4999717091', found: '4999716985'