Submission details
Task:Merkkijonot
Sender:jhuun
Submission time:2025-11-09 02:26:03 +0200
Language:C++ (C++17)
Status:READY
Result:18
Feedback
groupverdictscore
#1ACCEPTED18
#20
#30
#40
#50
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3, 4, 5details
#2ACCEPTED0.00 s2, 3, 4, 5details
#3ACCEPTED0.00 s1, 2, 3, 4, 5details
#4ACCEPTED0.00 s1, 2, 3, 4, 5details
#5ACCEPTED0.00 s1, 2, 3, 4, 5details
#6ACCEPTED0.00 s1, 2, 3, 4, 5details
#7ACCEPTED0.00 s1, 2, 3, 4, 5details
#8ACCEPTED0.00 s1, 2, 3, 4, 5details
#9ACCEPTED0.01 s1, 2, 3, 4, 5details
#10ACCEPTED0.00 s1, 2, 3, 4, 5details
#110.70 s2, 3, 4, 5details
#120.70 s2, 3, 4, 5details
#130.71 s2, 3, 4, 5details
#140.70 s2, 3, 4, 5details
#15ACCEPTED0.00 s2, 3, 4, 5details
#160.71 s2, 3, 4, 5details
#170.78 s2, 3, 4, 5details
#180.70 s2, 3, 4, 5details
#190.70 s3, 4, 5details
#200.71 s3, 4, 5details
#210.70 s3, 4, 5details
#220.70 s3, 4, 5details
#23ACCEPTED0.00 s3, 4, 5details
#240.70 s3, 4, 5details
#250.79 s3, 4, 5details
#260.70 s3, 4, 5details
#270.70 s4, 5details
#280.71 s4, 5details
#290.70 s4, 5details
#300.70 s4, 5details
#31ACCEPTED0.02 s4, 5details
#320.70 s4, 5details
#330.78 s4, 5details
#340.70 s4, 5details
#350.37 s5details
#360.37 s5details
#370.37 s5details
#380.38 s5details
#390.38 s5details
#400.38 s5details
#410.37 s5details
#420.38 s5details

Code

#include <bits/stdc++.h>

int main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(0);
    int n, m;
    std::string s;
    std::cin >> n >> m >> s;
    if (n <= m) {
        std::cout << (n == m ? 1 : 0) << std::endl;
        return 0;
    }
    std::vector<uint64_t> P(n + 1, 1);
    for (auto i = 2; i <= n; ++i) P[i] = P[i - 1] * 26;
    std::vector<std::vector<std::vector<uint64_t>>> S(2, std::vector<std::vector<uint64_t>>(m + 1));
    S[1][1].emplace_back(s[0]);
    for (auto i = 2; i <= n; ++i) {
        const auto ii = i & 1;
        const auto ii1 = (i + 1) & 1;
        const auto s0 = s[0] * P[i];
        for (auto j = 0; j <= m; ++j) S[ii][j].clear();
        const auto sb = s.back() * P[i];
        for (const auto& h : S[ii1][0]) {
            S[ii][0].emplace_back(h + sb);
            for (auto j = m - 1; j >= std::max(1, m - (n - i)); --j) {
                const auto sj1 = s[j - 1] * P[i];
                S[ii][j].emplace_back(h + sj1);
            }
        }
        for (const auto& h : S[ii1][m]) {
            S[ii][0].emplace_back(h + sb);
            for (auto j = m - 1; j >= std::max(1, m - (n - i)); --j) {
                const auto sj1 = s[j - 1] * P[i];
                S[ii][j].emplace_back(h + sj1);
            }
        }
        for (auto j = m; j >= std::max(2, m - (n - i)); --j) {
            const auto sj1 = s[j - 1] * P[i];
            for (const auto& h : S[ii1][j - 1]) {
                S[ii][j].emplace_back(h + sj1);
                S[ii][1].emplace_back(h + s0);
            }
        }
    }
    std::unordered_set<uint64_t> R;
    for (auto& h : S[n & 1][0]) R.insert(h);
    for (auto& h : S[n & 1][m]) R.insert(h);
    std::cout << R.size() << '\n';
}

Test details

Test 1

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
1 1
a

correct output
1

user output
1

Test 2

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
20 20
ssxfykmuzljmwgyvldnu

correct output
1

user output
1

Test 3

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
20 10
aaaaaaaaaa

correct output
1

user output
1

Test 4

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
20 10
aabbbaaaab

correct output
1532

user output
1532

Test 5

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
20 10
aabbacbdca

correct output
1542

user output
1542

Test 6

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
20 10
ztknszhrby

correct output
3261

user output
3261

Test 7

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
20 1
a

correct output
1

user output
1

Test 8

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
20 10
aabbbbbbba

correct output
1689

user output
1689

Test 9

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
20 8
abxabyab

correct output
8619

user output
8619

Test 10

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
20 10
ababababab

correct output
509

user output
509

Test 11

Group: 2, 3, 4, 5

Verdict:

input
100 50
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
1

user output
(empty)

Test 12

Group: 2, 3, 4, 5

Verdict:

input
100 50
bbaaabbbbbabbbbabababababbbaab...

correct output
511493117

user output
(empty)

Test 13

Group: 2, 3, 4, 5

Verdict:

input
100 50
addabbbbbadddccadcabaacbbbaabd...

correct output
618572722

user output
(empty)

Test 14

Group: 2, 3, 4, 5

Verdict:

input
100 50
rrdumiqrjewanjplbyvkaytbcyzbyl...

correct output
35126431

user output
(empty)

Test 15

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
100 1
a

correct output
1

user output
1

Test 16

Group: 2, 3, 4, 5

Verdict:

input
100 50
aabbbbbbbbbbbbbbbbbbbbbbbbbbbb...

correct output
460606355

user output
(empty)

Test 17

Group: 2, 3, 4, 5

Verdict:

input
100 23
aybabtuxaybabtuyaybabtu

correct output
342213037

user output
(empty)

Test 18

Group: 2, 3, 4, 5

Verdict:

input
100 50
ababababababababababababababab...

correct output
775006564

user output
(empty)

Test 19

Group: 3, 4, 5

Verdict:

input
1000 50
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
1

user output
(empty)

Test 20

Group: 3, 4, 5

Verdict:

input
1000 50
bbabaabbabbbaaaaaaaaaababaabbb...

correct output
911592620

user output
(empty)

Test 21

Group: 3, 4, 5

Verdict:

input
1000 50
cacabdddcbdadabdcbdddbdddbaccb...

correct output
12869296

user output
(empty)

Test 22

Group: 3, 4, 5

Verdict:

input
1000 50
tqoyadbshyehwcwaxbtbsqtaswkyet...

correct output
741984969

user output
(empty)

Test 23

Group: 3, 4, 5

Verdict: ACCEPTED

input
1000 1
a

correct output
1

user output
1

Test 24

Group: 3, 4, 5

Verdict:

input
1000 50
aabbbbbbbbbbbbbbbbbbbbbbbbbbbb...

correct output
599950419

user output
(empty)

Test 25

Group: 3, 4, 5

Verdict:

input
1000 23
aybabtuxaybabtuyaybabtu

correct output
548809016

user output
(empty)

Test 26

Group: 3, 4, 5

Verdict:

input
1000 50
ababababababababababababababab...

correct output
765799780

user output
(empty)

Test 27

Group: 4, 5

Verdict:

input
1000000 50
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
1

user output
(empty)

Test 28

Group: 4, 5

Verdict:

input
1000000 50
bbaababbaaabbabababbaaaaaabbaa...

correct output
514073453

user output
(empty)

Test 29

Group: 4, 5

Verdict:

input
1000000 50
aabccabbbbabccabcdcdadbcdccdac...

correct output
438094288

user output
(empty)

Test 30

Group: 4, 5

Verdict:

input
1000000 50
yzfzimxrxfukhlkrtaylohyuqkupsn...

correct output
905445077

user output
(empty)

Test 31

Group: 4, 5

Verdict: ACCEPTED

input
1000000 1
a

correct output
1

user output
1

Test 32

Group: 4, 5

Verdict:

input
1000000 50
aabbbbbbbbbbbbbbbbbbbbbbbbbbbb...

correct output
280596224

user output
(empty)

Test 33

Group: 4, 5

Verdict:

input
1000000 23
aybabtuxaybabtuyaybabtu

correct output
268144314

user output
(empty)

Test 34

Group: 4, 5

Verdict:

input
1000000 50
ababababababababababababababab...

correct output
655244665

user output
(empty)

Test 35

Group: 5

Verdict:

input
1000000000 50
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
1

user output
(empty)

Test 36

Group: 5

Verdict:

input
1000000000 50
abbbaabbaaaaabbbbabbabbaaaaaba...

correct output
911059863

user output
(empty)

Test 37

Group: 5

Verdict:

input
1000000000 50
cbabbcaadabbcabbdbdabbbcccbdca...

correct output
994268014

user output
(empty)

Test 38

Group: 5

Verdict:

input
1000000000 50
pehyicejeninplaczwezhahmbhwfwi...

correct output
837165971

user output
(empty)

Test 39

Group: 5

Verdict:

input
1000000000 1
a

correct output
1

user output
(empty)

Test 40

Group: 5

Verdict:

input
1000000000 50
aabbbbbbbbbbbbbbbbbbbbbbbbbbbb...

correct output
114333489

user output
(empty)

Test 41

Group: 5

Verdict:

input
1000000000 23
aybabtuxaybabtuyaybabtu

correct output
628064772

user output
(empty)

Test 42

Group: 5

Verdict:

input
1000000000 50
ababababababababababababababab...

correct output
802946327

user output
(empty)