QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#890985#5368. 异世界的文章分割者Cyanmond60 2365ms16308kbC++237.1kb2025-02-09 07:08:572025-02-09 07:08:58

Judging History

This is the latest submission verdict.

  • [2025-02-09 07:08:58]
  • Judged
  • Verdict: 60
  • Time: 2365ms
  • Memory: 16308kb
  • [2025-02-09 07:08:57]
  • Submitted

answer

#include <bits/stdc++.h>

using namespace std;

// #include "angel/math/modint.hpp"

// clang-format off
using ll = long long;
template <class T>
constexpr int len(const T &c) {
    return int(std::size(c));
}
#define L(i, l, r) for (int i = (l); i < (r); ++i)
#define R(i, l, r) for (int i = (r) - 1; i >= (l); --i)
#define ALL(x) (x).begin(), (x).end()
#define fi first
#define se second
// clang-format on

struct State {
    int len;
    int link;
    int firstTime = 1 << 30;
    int lastTime = -1;
    array<int, 26> nxtNodes;
    State() {
        fill(ALL(nxtNodes), -1);
    }
} stateDefault;

array<State, 100000> nodes;
array<int, 50000> inDeg;

struct SuffixAutomaton {
    int n = 0;
    int last = 0;

    SuffixAutomaton() {
        init();
    }

    SuffixAutomaton(string s) {
        fill(nodes.begin(), nodes.begin() + 2 * len(s), stateDefault);
        fill(inDeg.begin(), inDeg.begin() + len(s), 0);
        init();
        L(i, 0, len(s)) {
            extend(s[i], i);
        }
        acm();
    }

    void init() {
        // nodes.push_back(State());
        nodes[0].len = 0;
        nodes[0].link = -1;
        n = 1;
    }

    void extend(char cx, int t) {
        const int c = cx - 'a';
        int cur = n++;
        int p = last;
        // nodes.push_back(State());
        nodes[cur].len = nodes[last].len + 1;
        nodes[cur].firstTime = nodes[cur].lastTime = t;

        while (p != -1 and nodes[p].nxtNodes[c] == -1) {
            nodes[p].nxtNodes[c] = cur;
            p = nodes[p].link;
        }

        if (p == -1) {
            nodes[cur].link = 0;
        } else {
            const int q = nodes[p].nxtNodes[c];
            if (nodes[p].len + 1 == nodes[q].len) {
                nodes[cur].link = q;
            } else {
                int clone = n++;
                // nodes.push_back(State());
                nodes[clone].len = nodes[p].len + 1;
                nodes[clone].link = nodes[q].link;
                nodes[clone].nxtNodes = nodes[q].nxtNodes;
                while (p != -1 and nodes[p].nxtNodes[c] == q) {
                    nodes[p].nxtNodes[c] = clone;
                    p = nodes[p].link;
                }
                nodes[q].link = nodes[cur].link = clone;
            }
        }

        last = cur;
    }

    void acm() {
        // essentially tree dp
        queue<int> que;
        L(i, 0, n) {
            if (nodes[i].link == -1) continue;
            ++inDeg[nodes[i].link];
        }
        L(i, 0, n) if (inDeg[i] == 0) que.push(i);
        while (not que.empty()) {
            const int f = que.front();
            que.pop();
            const int p = nodes[f].link;
            if (p == -1) continue;
            --inDeg[p];
            if (inDeg[p] == 0) {
                que.push(p);
            }
            nodes[p].firstTime = min(nodes[p].firstTime, nodes[f].firstTime);
            nodes[p].lastTime = max(nodes[p].lastTime, nodes[f].lastTime);
        }
    }
};

void solve() {
    int n, k;
    cin >> n >> k;
    string s;
    cin >> s;

    auto calcValue = [&](int l, int r) -> ll {
        if (r > n) {
            return 1ll << 61;
        }
        const auto S = s.substr(l, r - l);
        const int m = len(S);
        SuffixAutomaton sa(S);

        vector<ll> imos1(m), imos2(m + 1);
        L(i, 0, sa.n) {
            auto &node = nodes[i];
            if (node.link == -1) continue;
            const ll minLen = nodes[node.link].len + 1;
            const ll maxLen = node.len;
            // len : [minLen, maxLen]
            const ll firstTime = node.firstTime;
            const ll lastTime = node.lastTime;
            // cerr << __LINE__ << ' ' << minLen << " " << maxLen << " " << firstTime << " " << lastTime << endl;

            // [firstTime, lastTime - maxLen]: + (maxLen - minLen + 1)
            // [lastTime - maxLen, lastTime - maxLen + i]: + (minLen - firstTime) - i
            if (firstTime <= lastTime - maxLen) {
                imos1[firstTime] += maxLen - minLen + 1;
                imos2[lastTime - maxLen + 1] -= 1;
                imos2[lastTime - minLen + 2] += 1;
            } else if (lastTime - firstTime >= minLen) {
                ll mxLen = lastTime - firstTime;
                imos1[lastTime - mxLen] += mxLen - minLen + 1;
                imos2[lastTime - mxLen + 1] -= 1;
                imos2[lastTime - minLen + 2] += 1;
            }
        }

        L(i, 1, m + 1) imos2[i] += imos2[i - 1];
        L(i, 0, m) imos1[i] += imos2[i];
        L(i, 1, m) imos1[i] += imos1[i - 1];

        ll score = 0;
        L(i, 0, m - 1) {
            score += min(__int128(1ll << 61), __int128(imos1[i]) * __int128_t(imos1[i]));
            if (score > (1ll << 60)) break;
        }
        return score;

        // sa から T[i:r-1] の文字列を数え上げ
        /*
        もともと 2 文字列だったらどうやるか?
        S の suffix automaton を作成 O(|S|)
        i = 1, 2, ..., |T| について
            最大の j であって T[j:i] in S であるようなものを見つける
        i -> i+1 transition
        v, lを持つ
        v から T[i+1] character の nxtNode がある場合そこをたどる
            v = nxtNode
            l = l + 1
        ない場合、 link を辿る (前のいくつかを消して) until T[i+1] nxtNode が見つかる
            l = v.len

        答えは ?
        Node は全て unique な substrings の表現だと思い出す
        実際には、 nxtNode を辿ったとき前にも拡張されている場合がある
        それぞれの node について l の max を持つ。
        sum(min(l - node[v.link].len, v.len - v.link.len)) for all nodes?
        */

        /*
        実際には S[1:i] と S[i+1:n] の共通部分文字列の個数をそれぞれの i について求める
        当然 S[1:i] の方を Suffix Automaton で管理したい
        i -> i+1 での変化はどうなるか

        それぞれのノードについて、最初の出現時刻、最後の出現時刻を持つ
        */
    };

    auto judge = [&](const ll threshold) -> bool {
        int l = 0;
        int cntRanges = 0;
        while (l != n) {
            ++cntRanges;
            int r = l;
            L(k, 0, 20) {
                if (calcValue(l, l + (1 << k)) > threshold) {
                    R(i, 0, k) {
                        if (calcValue(l, r + (1 << i)) <= threshold) {
                            r += 1 << i;
                        }
                    }
                    break;
                }
            }

            l = r;
        }

        return cntRanges <= k;
    };

    ll ok = 1ll << 60, ng = -1;
    while (ok - ng > 1) {
        const auto mid = (ok + ng) / 2;
        if (judge(mid)) {
            ok = mid;
        } else {
            ng = mid;
        }
    }
    cout << ok << endl;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int t = 1;
    // cin >> t;
    while (t--) {
        solve();
    }
}

詳細信息

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 1ms
memory: 15372kb

input:

10 3
aaaaaaaaaa

output:

6

result:

ok single line: '6'

Test #2:

score: 10
Accepted
time: 1ms
memory: 15536kb

input:

10 1
abbbaabbba

output:

289

result:

ok single line: '289'

Test #3:

score: 10
Accepted
time: 3ms
memory: 15464kb

input:

10 2
cacabbcbca

output:

11

result:

ok single line: '11'

Test #4:

score: 10
Accepted
time: 1ms
memory: 15468kb

input:

10 4
aabbccddaa

output:

1

result:

ok single line: '1'

Test #5:

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

input:

10 4
ababbbabab

output:

2

result:

ok single line: '2'

Test #6:

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

input:

10 2
ababbaaaba

output:

12

result:

ok single line: '12'

Test #7:

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

input:

10 1
baabaababa

output:

156

result:

ok single line: '156'

Test #8:

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

input:

10 10
hbjebnidnq

output:

0

result:

ok single line: '0'

Subtask #2:

score: 10
Accepted

Dependency #1:

100%
Accepted

Test #9:

score: 10
Accepted
time: 3ms
memory: 15420kb

input:

50 10
aababaaabaabaaabababaaaaaabbbababbaababaaaabababba

output:

17

result:

ok single line: '17'

Test #10:

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

input:

50 5
bbbaabbbbbaabaababbbbbbaaaaababbbaaabaaaaaabbabaab

output:

91

result:

ok single line: '91'

Test #11:

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

input:

50 5
adbabadbabadbabadbabadbabadbabadbabadbabadbabadbab

output:

412

result:

ok single line: '412'

Test #12:

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

input:

50 3
caaabcaaabcaaabcaaabcaaabcaaabcaaabcaaabcaaabcaaab

output:

3222

result:

ok single line: '3222'

Test #13:

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

input:

50 1
cadabcadabcadcadabcadabcadcadabcadcadabcadabcadcad

output:

407986

result:

ok single line: '407986'

Test #14:

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

input:

50 15
bbbbbbabaabaaaabaaabbaababbaaabababbbbaabaababaaba

output:

3

result:

ok single line: '3'

Test #15:

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

input:

50 20
baaaaaaaabbabbababbaaaabbabaabbababbbabbbabaaabaaa

output:

2

result:

ok single line: '2'

Test #16:

score: 10
Accepted
time: 1ms
memory: 15440kb

input:

50 6
ababbbbaaaaabbbabaabaaabaaabababababbaaaababbbbbab

output:

65

result:

ok single line: '65'

Test #17:

score: 10
Accepted
time: 3ms
memory: 15340kb

input:

50 1
aabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaa

output:

129389

result:

ok single line: '129389'

Test #18:

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

input:

50 1
acbcaabcababaacbbacaabcbacccbbaacaccbabccacaccaabb

output:

16446

result:

ok single line: '16446'

Test #19:

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

input:

50 14
ccaccaccaccaccaccaccaccaccaccaccaccaccaccaccaccacc

output:

6

result:

ok single line: '6'

Test #20:

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

input:

50 24
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

output:

2

result:

ok single line: '2'

Test #21:

score: 10
Accepted
time: 1ms
memory: 15416kb

input:

50 50
txcopptgjrvkgzdvaxgrhwgnkjfbspyytzkbirczhcrctddsfj

output:

0

result:

ok single line: '0'

Subtask #3:

score: 20
Accepted

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Test #22:

score: 20
Accepted
time: 1ms
memory: 15452kb

input:

200 1
cabaababbabbbcabcbcaacbccaabcacbccaabbccccbcabbcacbbcbacbccaabbbbcbcabbacabbacccbbbbbacccabcccaaacbcbaaaccabbbabcaabbbababcabccbccbaaabbbcbccbbcacbbabbaabcacbcaccccccaaaccabbaaabbbcbbccbcabbbcabcccabb

output:

2192936

result:

ok single line: '2192936'

Test #23:

score: 20
Accepted
time: 1ms
memory: 15436kb

input:

200 2
cbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaa

output:

1196175

result:

ok single line: '1196175'

Test #24:

score: 20
Accepted
time: 3ms
memory: 15516kb

input:

200 3
acabacbacacabacbacacabacacabacbacacabacbacacabacacabacbacacabacacabacbacacabacbacacabacacabacbacacabacbacacabacacabacbacacabacacabacbacacabacbacacabacacabacbacacabacacabacbacacabacbacacabacacabacbacac

output:

1550907

result:

ok single line: '1550907'

Test #25:

score: 20
Accepted
time: 1ms
memory: 15384kb

input:

200 7
hefdaadcdgfecghbgcbggfgdfchchgbdfafghahacgbbcebfchadbcechdacacccahggadbdacbggadbgceacgeedfafbhhfhaacdccefddbfaffcdggabhhcghcbfbedddeheaeaabdahhbhcefeededbfdafghdahcfbfbcbbdgccffhaeggcdhdcghghfaaefechd

output:

1134

result:

ok single line: '1134'

Test #26:

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

input:

200 11
lmmeigmkegfbcmhfedchmeckbnbgjlfljahjleeldlnkdlnkngaeiiblangdlkdfjchalckfhfcjgljlelebhfacafkjknknjjfklnhcnlgkkjmhfafmhehgehmejajabgaikfnclihbkmeckghfljgfmajflilgcimamgljlhjkfhgjcbcddfjlnchcgedmghdlfaib

output:

155

result:

ok single line: '155'

Test #27:

score: 20
Accepted
time: 2ms
memory: 15456kb

input:

200 19
cdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbac

output:

133

result:

ok single line: '133'

Test #28:

score: 20
Accepted
time: 2ms
memory: 15292kb

input:

200 16
acdbddbaacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbacdbddbaacdb

output:

481

result:

ok single line: '481'

Test #29:

score: 20
Accepted
time: 1ms
memory: 15480kb

input:

200 25
abacdacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacda

output:

99

result:

ok single line: '99'

Test #30:

score: 20
Accepted
time: 2ms
memory: 15444kb

input:

200 25
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkgmivxnitlfmciurqeqnqghxveqrxidxbmzlpdveuucarjwdqyiiaegadulttqmkzinvxalbvnccchfvjechxnufmcmofrdkesmkjeiobfzwbppknslhtxoranwbjnxggudgjmjrigintzxkusvvaqwhuwvoyiz

output:

6

result:

ok single line: '6'

Test #31:

score: 20
Accepted
time: 2ms
memory: 15504kb

input:

200 37
aaaaaaaaaaaaabdecdebedebaaaaaaaaaaaaaaaacebcbcecaebeaaaaaaaaaaaaaebcddecebbebaaaaaaaaaaaaaaeadaaecdadbaeaaaaaaaaaaaaaccbabdbbeedaeaaaaaaaaaaaaadbddbebeddcbeaaaaaaaaaaaaaaceeedcecdadbaaaaaaaaaaaaaaaaaa

output:

10

result:

ok single line: '10'

Test #32:

score: 20
Accepted
time: 3ms
memory: 15324kb

input:

200 64
bbabbbaaaabababaabbaaaabbabbbaabbaababababbbaabbbbbbbbbabbbbabaababbbbabbbabbbaabbbbbaabaabbbbbbababbbabbaaaababbbbabbbaaaaaaabbabbaabaabaabbaaabbaaaaaabaabbbbaaaaabbababbaabaabbbbbabbbbababbbbaaabaab

output:

2

result:

ok single line: '2'

Test #33:

score: 20
Accepted
time: 2ms
memory: 15448kb

input:

200 49
abbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbab

output:

10

result:

ok single line: '10'

Test #34:

score: 20
Accepted
time: 3ms
memory: 15284kb

input:

200 57
zbizbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbz

output:

3

result:

ok single line: '3'

Test #35:

score: 20
Accepted
time: 3ms
memory: 15380kb

input:

200 44
aaaaaaacdaadaaaaaaabdbbaaaaaaaaaacbdaaaaaadccdcbaaaaaabdcdadaaaaaaccdabbaaaaaadcbaadaaaaaacdcdbaaaaaaabbcbdbaaaaaaabacbbaaaaaabcbccdaaaaaadbaabdaaaaaadaacddaaaaaaadcdbcaaaaaabbcdcaadbbdccdacdbcaccdbbd

output:

6

result:

ok single line: '6'

Subtask #4:

score: 20
Accepted

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Dependency #3:

100%
Accepted

Test #36:

score: 20
Accepted
time: 9ms
memory: 15564kb

input:

1000 153
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

28

result:

ok single line: '28'

Test #37:

score: 20
Accepted
time: 17ms
memory: 15568kb

input:

1000 79
babacbbcacbbccccababbacbacacbbcabcabbaaabccbacbaacccaaaaabbcabaabcaaabccccbbaabbcaccaaacccbaaacaacccaccababaacbcbbacbcbbbcccbbcbaaababbcbacaacaccbcacaaccbbbcaabcaababbcbbabbccaccbccabaacbcacbbccbbcbaaccbcaacccacccccabbbabccacbbbbcaabccccacababacaccacbcccbcccbaccabaacbaccabbcbbacaabcbcacccaac...

output:

200

result:

ok single line: '200'

Test #38:

score: 20
Accepted
time: 14ms
memory: 15336kb

input:

1000 6
ahcfaddebbbccheeffbfdbbbdcjhdefhcibhgjbgeaigaaifcbdfbjdjiddicbhagggaaaajiejjjfdabcjjjceieaijacjbaecifacgdajcigfababaddecfehdhfbfjhdahchahiiiafaibdbbdegeachfdicciaegdcagaahgdgebdhbdejajafajjjfdjfjdijjgahjdjjjifeejjbachjaiacgjfhccebjgddjehiecibjfheicgihfdabhbdiijbcdgffaedcejecciddahjajdfjiddhgc...

output:

237763

result:

ok single line: '237763'

Test #39:

score: 20
Accepted
time: 16ms
memory: 15524kb

input:

1000 79
cfbdcgcdcdgabebecbbgcebcgefcbdageefffaddafegeabdagdaaabeaedgabgedafdegdggbedcceafgegbceceebaaadbccgadebeaeebcaggdbdgefeaeegafgbaeegaadbcaeddceecacbecdgfaefaeagdbaadbdfceedgdabfbaadcffgbedfgbbdddbcgdfccaeabbgabdfgefcefbaadefcfagebegfafbabfcbaagbedacfgffefadcdecbabbcfaegcgcddbagceaaaabcfacgfbe...

output:

91

result:

ok single line: '91'

Test #40:

score: 20
Accepted
time: 14ms
memory: 15540kb

input:

1000 3
htspasbnfsqdnsppbkaaprldgjpfaikdjcaojaejdtipsrkrfddlkepkqbjprsejnpcqigqjkmpqfhbbglccmtrrngoopfscopnocqkfesphqnteofsinkqqopnknbkejodkpnmjobgcisimpsgnqqidtfsdjakntlkgtgnnaietrijhgksrsnohilbrrtcpndciksonfptfkljhhisihcngqsdmgreakrrgmgnspabhfmegnmhtlhkrfnliipssjcbdikfgqmjtaltootaaopdrfrfrdaelnbrdd...

output:

1022595

result:

ok single line: '1022595'

Test #41:

score: 20
Accepted
time: 13ms
memory: 15320kb

input:

1000 14
jmgovzbodqoznwcmegtwxcunytkvnnoqixxjgbspvoochcctbmgfcofmdctzmpxwqwztunedfpvrdbbgujrmowvbahioiwnewuidqkajpxdkwckpmmbrkbrebgiqdktjgeaktrcgcaduslvxlpqofscjzmjmjyyzpvogthoglxsdvqpvcccfljopkcudctgxjovrppnbyzairtebpggtheutanrfalcsakvcreyxxchzalfaybwptnbulyteeuapgoscpzvigwetrjhtzxtgzhehhknztxhcvrbw...

output:

11558

result:

ok single line: '11558'

Test #42:

score: 20
Accepted
time: 9ms
memory: 15432kb

input:

1000 102
bacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaab...

output:

384

result:

ok single line: '384'

Test #43:

score: 20
Accepted
time: 10ms
memory: 15552kb

input:

1000 11
dfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidab...

output:

15796914

result:

ok single line: '15796914'

Test #44:

score: 20
Accepted
time: 12ms
memory: 15552kb

input:

1000 3
cmabiacablhoadfenghhdekggicmfkhennaifblffiofabfdkmlcklkndoiognhfihbocmabiacablhoadfenghhdekggicmfkhennaifblffiofabfdkmlcklkndoiognhfihbocmabiacablhoadfenghhdekggicmfkhennaifblffiofabfdkmlcklkndoiognhfihbocmabiacablhoadfenghhdekggicmfkhennaifblffiofabfdkmlcklkndoiognhfihbocmabiacablhoadfenghhd...

output:

6797306034

result:

ok single line: '6797306034'

Test #45:

score: 20
Accepted
time: 9ms
memory: 15540kb

input:

1000 1
deebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcabbaeeaadeebcab...

output:

13523081623

result:

ok single line: '13523081623'

Test #46:

score: 20
Accepted
time: 12ms
memory: 15532kb

input:

1000 176
ddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddcddcaaddc...

output:

15

result:

ok single line: '15'

Test #47:

score: 20
Accepted
time: 9ms
memory: 15328kb

input:

1000 176
dcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbdcbdbd...

output:

26

result:

ok single line: '26'

Test #48:

score: 20
Accepted
time: 13ms
memory: 15472kb

input:

1000 1
bbabaabbabaabbabbabaabbabaabbabbabaabbabbabaabbabaabbabbabaabbabaabbabbabaabbabbabaabbabaabbabbabaabbabbabaabbabaabbabbabaabbabaabbabbabaabbabbabaabbabaabbabbabaabbabaabbabbabaabbabbabaabbabaabbabbabaabbabbabaabbabaabbabbabaabbabaabbabbabaabbabbabaabbabaabbabbabaabbabbabaabbabaabbabbabaabbaba...

output:

674957710334

result:

ok single line: '674957710334'

Test #49:

score: 20
Accepted
time: 14ms
memory: 15564kb

input:

1000 27
aacabebebebeaacabebebebeaacabebeaacabebebebeaacabebebebeaacabebeaacabebebebeaacabebeaacabebebebeaacabebebebeaacabebeaacabebebebeaacabebebebeaacabebeaacabebebebeaacabebeaacabebebebeaacabebebebeaacabebeaacabebebebeaacabebeaacabebebebeaacabebebebeaacabebeaacabebebebeaacabebebebeaacabebeaacabebe...

output:

97930

result:

ok single line: '97930'

Test #50:

score: 20
Accepted
time: 14ms
memory: 15568kb

input:

1000 92
agddghjgdcdaagddghjgdcdaagddghjgdagddghjgdcdaagddghjgdcdaagddghjgdagddghjgdcdaagddghjgdagddghjgdcdaagddghjgdcdaagddghjgdagddghjgdcdaagddghjgdcdaagddghjgdagddghjgdcdaagddghjgdagddghjgdcdaagddghjgdcdaagddghjgdagddghjgdcdaagddghjgdagddghjgdcdaagddghjgdcdaagddghjgdagddghjgdcdaagddghjgdcdaagddghj...

output:

91

result:

ok single line: '91'

Test #51:

score: 20
Accepted
time: 11ms
memory: 15500kb

input:

1000 229
acabaacabaacaacabaacabaacaacabaacaacabaacabaacaacabaacabaacaacabaacaacabaacabaacaacabaacaacabaacabaacaacabaacabaacaacabaacaacabaacabaacaacabaacabaacaacabaacaacabaacabaacaacabaacaacabaacabaacaacabaacabaacaacabaacaacabaacabaacaacabaacaacabaacabaacaacabaacabaacaacabaacaacabaacabaacaacabaacabaa...

output:

6

result:

ok single line: '6'

Test #52:

score: 20
Accepted
time: 13ms
memory: 15588kb

input:

1000 387
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

1

result:

ok single line: '1'

Test #53:

score: 20
Accepted
time: 11ms
memory: 15364kb

input:

1000 79
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaautinovsqokcxceilfvzjuysmgbiyekhrjqvuhhncnpwdtvsyztzgtalquqtzfcvkwymtgamyvbgfzwdauxdetdjumnyi...

output:

107

result:

ok single line: '107'

Test #54:

score: 20
Accepted
time: 10ms
memory: 15548kb

input:

1000 15
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaeykkmvfmjxnnkseynhnyfbqpwwixbaaaaaaaaaaaaaaaaaaaaaaaaaaaaarpatbemszmhqxaxnyvkrdyqhbghuuaaaaaaaaaaaaaaaaaaaaaaaaaaaaayslipjklioorocacxthuhpczyttxgaaaaaaaaaaaaaaaaaaaaaaaaaaaaahakpigwtewvfeumzjluchidvlsfobaaaaaaaaaaaaaaaaaaaaaaaaaaaaazwzvxvonganwxwbacknxoaozsirfuaa...

output:

11461

result:

ok single line: '11461'

Test #55:

score: 20
Accepted
time: 13ms
memory: 15436kb

input:

1000 1000
lgugapptmavvpeohxdkunrtpzidgaokzvstjjgksmlbkmqsuymbcdjrwgeigyrxbepzxpjvqmdsotqfpkpxlhqimhsdmplvvnarlejkguqqdvuxexwnqmfvtbilpszuonxvkmqfejhjkhvswijpbjacbjutfrkkmzdryibkpzpzdkcdavvqyygpvzxtmpkqzapdreghjxogcvigztzpeecembjpvifgmnvreswaestowqvolqgwpvkvtgtiimgvhjegzuwdjdfhlectopiinmvkyckopyavyyv...

output:

0

result:

ok single line: '0'

Subtask #5:

score: 0
Wrong Answer

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Dependency #3:

100%
Accepted

Dependency #4:

100%
Accepted

Test #56:

score: 0
Wrong Answer
time: 2365ms
memory: 16308kb

input:

50000 1
eaadcfedcbcceccfccdbbeccbcaeaaeffbbbecedddfacfdeaadbbebdcbaafcefedddbfdfbcdfbccbdcdcbccbebcbddfcdaacfefffbafcdfefabbecbcacdfcabbebedacdbcdfebbccfeecddcfbdfbebffafdbaeddcbbecfdbfaecbeeffcdfbceefeddfdadfadfadfeafaeddbccabebeaccadbfdfbedededecccbcdcafddefaefccbfbcdaeedfeaabdceafeaabcdabbceddecc...

output:

17939546620591149

result:

wrong answer 1st lines differ - expected: '10929072780271', found: '17939546620591149'