| Task: | Merkkijonot |
| Sender: | Gomhog |
| Submission time: | 2025-11-09 01:58:53 +0200 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| #3 | WRONG ANSWER | 0 |
| #4 | WRONG ANSWER | 0 |
| #5 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5 | details |
| #2 | ACCEPTED | 0.15 s | 2, 3, 4, 5 | details |
| #3 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5 | details |
| #4 | WRONG ANSWER | 0.01 s | 1, 2, 3, 4, 5 | details |
| #5 | WRONG ANSWER | 0.01 s | 1, 2, 3, 4, 5 | details |
| #6 | ACCEPTED | 0.01 s | 1, 2, 3, 4, 5 | details |
| #7 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5 | details |
| #8 | WRONG ANSWER | 0.01 s | 1, 2, 3, 4, 5 | details |
| #9 | WRONG ANSWER | 0.00 s | 1, 2, 3, 4, 5 | details |
| #10 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5 | details |
| #11 | ACCEPTED | 0.02 s | 2, 3, 4, 5 | details |
| #12 | RUNTIME ERROR | 0.00 s | 2, 3, 4, 5 | details |
| #13 | RUNTIME ERROR | 0.00 s | 2, 3, 4, 5 | details |
| #14 | RUNTIME ERROR | 0.00 s | 2, 3, 4, 5 | details |
| #15 | ACCEPTED | 0.00 s | 2, 3, 4, 5 | details |
| #16 | WRONG ANSWER | 0.26 s | 2, 3, 4, 5 | details |
| #17 | ACCEPTED | 0.25 s | 2, 3, 4, 5 | details |
| #18 | ACCEPTED | 0.06 s | 2, 3, 4, 5 | details |
| #19 | ACCEPTED | 0.03 s | 3, 4, 5 | details |
| #20 | RUNTIME ERROR | 0.00 s | 3, 4, 5 | details |
| #21 | RUNTIME ERROR | 0.00 s | 3, 4, 5 | details |
| #22 | RUNTIME ERROR | 0.00 s | 3, 4, 5 | details |
| #23 | ACCEPTED | 0.00 s | 3, 4, 5 | details |
| #24 | WRONG ANSWER | 0.36 s | 3, 4, 5 | details |
| #25 | ACCEPTED | 0.36 s | 3, 4, 5 | details |
| #26 | ACCEPTED | 0.09 s | 3, 4, 5 | details |
| #27 | ACCEPTED | 0.05 s | 4, 5 | details |
| #28 | RUNTIME ERROR | 0.00 s | 4, 5 | details |
| #29 | RUNTIME ERROR | 0.00 s | 4, 5 | details |
| #30 | RUNTIME ERROR | 0.00 s | 4, 5 | details |
| #31 | ACCEPTED | 0.00 s | 4, 5 | details |
| #32 | WRONG ANSWER | 0.72 s | 4, 5 | details |
| #33 | ACCEPTED | 0.71 s | 4, 5 | details |
| #34 | ACCEPTED | 0.17 s | 4, 5 | details |
| #35 | ACCEPTED | 0.07 s | 5 | details |
| #36 | RUNTIME ERROR | 0.00 s | 5 | details |
| #37 | RUNTIME ERROR | 0.00 s | 5 | details |
| #38 | RUNTIME ERROR | 0.00 s | 5 | details |
| #39 | ACCEPTED | 0.00 s | 5 | details |
| #40 | TIME LIMIT EXCEEDED | -- | 5 | details |
| #41 | TIME LIMIT EXCEEDED | -- | 5 | details |
| #42 | ACCEPTED | 0.25 s | 5 | details |
Code
#include <bits/stdc++.h>
#define F first
#define S second
#define X real()
#define Y imag()
using namespace std;
typedef long long ll;
typedef long double ld;
const ll M = 1000000007;
ll mat[355][355];
ll ret[355];
ll tmp[355][355];
ll tmp2[355];
bool accept[355];
map<char,int> trie[301];
set<int> prefpos[301];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,m;
cin>>n>>m;
string s;
cin>>s;
for (int i=0;i<m-1;i++) {
mat[i+1][i]=1;
for (int j=0;j<=i;j++) {
bool pos=true;
for (int k=0;j+k<i;k++) {
if (s[k]!=s[j+k+1]) pos=false;
}
if (pos) {
if (s[i+1]!=s[i-j]) mat[i-j][i]=1;
}
}
}
accept[m-1]=true;
int newest=0;
for (int i=0;i<m;i++) {
int nod=0;
for (int j=i;j<m;j++) {
if (trie[nod].count(s[j])==0) trie[nod][s[j]]=++newest;
if (s[j]==s[0]) prefpos[trie[nod][s[j]]].insert(0);
for (int r : prefpos[nod]) {
if (s[j]==s[r+1]) prefpos[trie[nod][s[j]]].insert(r+1);
}
nod=trie[nod][s[j]];
}
accept[m-1+nod]=true;
}
int si=newest+1;
for (int i=0;i<si;i++) {
if (trie[i].count(s[0])==0) trie[i][s[0]]=-(m-1);
for (int x : prefpos[i]) {
if (x<m-1 && (trie[i].count(s[x+1])==0 || trie[i][s[x+1]] <=0)) trie[i][s[x-1]]=-(m-1)+x+1;
}
}
for (int i=0;i<si;i++) {
if (accept[m-1+i]) {
for (auto x : trie[0]) {
mat[m-1+x.S][m-1+i] = 1;
}
} else {
for (auto x : trie[i]) {
mat[m-1+x.S][m-1+i]=1;
}
}
}
int mm = m+si;
ret[0]=1;
int e = n-1;
while (e>0) {
if (e%2==1) {
for (int i=0;i<mm;i++) {
tmp2[i]=0;
for (int j=0;j<mm;j++) {
tmp2[i]+=(mat[i][j]*ret[j])%M;
}
}
for (int i=0;i<mm;i++) ret[i]=tmp2[i]%M;
}
for (int i=0;i<mm;i++) {
for (int j=0;j<mm;j++) {
tmp[i][j]=0;
for (int k=0;k<mm;k++) {
tmp[i][j]+=(mat[i][k]*mat[k][j])%M;
}
}
}
for (int i=0;i<mm;i++) {
for (int j=0;j<mm;j++) mat[i][j]=tmp[i][j]%M;
}
e/=2;
}
ll res=0;
for (int i=0;i<mm;i++) {
if (accept[i]) res+=ret[i];
}
cout<<res%M<<"\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: WRONG ANSWER
| input |
|---|
| 20 10 aabbbaaaab |
| correct output |
|---|
| 1532 |
| user output |
|---|
| 3073 |
Feedback: Incorrect character on line 1 col 1: expected "1532", got "3073"
Test 5
Group: 1, 2, 3, 4, 5
Verdict: WRONG ANSWER
| input |
|---|
| 20 10 aabbacbdca |
| correct output |
|---|
| 1542 |
| user output |
|---|
| 3254 |
Feedback: Incorrect character on line 1 col 1: expected "1542", got "3254"
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: WRONG ANSWER
| input |
|---|
| 20 10 aabbbbbbba |
| correct output |
|---|
| 1689 |
| user output |
|---|
| 3320 |
Feedback: Incorrect character on line 1 col 1: expected "1689", got "3320"
Test 9
Group: 1, 2, 3, 4, 5
Verdict: WRONG ANSWER
| input |
|---|
| 20 8 abxabyab |
| correct output |
|---|
| 8619 |
| user output |
|---|
| 8615 |
Feedback: Incorrect character on line 1 col 4: expected "8619", got "8615"
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: ACCEPTED
| input |
|---|
| 100 50 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 12
Group: 2, 3, 4, 5
Verdict: RUNTIME ERROR
| input |
|---|
| 100 50 bbaaabbbbbabbbbabababababbbaab... |
| correct output |
|---|
| 511493117 |
| user output |
|---|
| (empty) |
Test 13
Group: 2, 3, 4, 5
Verdict: RUNTIME ERROR
| input |
|---|
| 100 50 addabbbbbadddccadcabaacbbbaabd... |
| correct output |
|---|
| 618572722 |
| user output |
|---|
| (empty) |
Test 14
Group: 2, 3, 4, 5
Verdict: RUNTIME ERROR
| 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: WRONG ANSWER
| input |
|---|
| 100 50 aabbbbbbbbbbbbbbbbbbbbbbbbbbbb... |
| correct output |
|---|
| 460606355 |
| user output |
|---|
| 661237549 |
Feedback: Incorrect character on line 1 col 1: expected "460606355", got "661237549"
Test 17
Group: 2, 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 23 aybabtuxaybabtuyaybabtu |
| correct output |
|---|
| 342213037 |
| user output |
|---|
| 342213037 |
Test 18
Group: 2, 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 50 ababababababababababababababab... |
| correct output |
|---|
| 775006564 |
| user output |
|---|
| 775006564 |
Test 19
Group: 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 50 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 20
Group: 3, 4, 5
Verdict: RUNTIME ERROR
| input |
|---|
| 1000 50 bbabaabbabbbaaaaaaaaaababaabbb... |
| correct output |
|---|
| 911592620 |
| user output |
|---|
| (empty) |
Test 21
Group: 3, 4, 5
Verdict: RUNTIME ERROR
| input |
|---|
| 1000 50 cacabdddcbdadabdcbdddbdddbaccb... |
| correct output |
|---|
| 12869296 |
| user output |
|---|
| (empty) |
Test 22
Group: 3, 4, 5
Verdict: RUNTIME ERROR
| 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: WRONG ANSWER
| input |
|---|
| 1000 50 aabbbbbbbbbbbbbbbbbbbbbbbbbbbb... |
| correct output |
|---|
| 599950419 |
| user output |
|---|
| 831995773 |
Feedback: Incorrect character on line 1 col 1: expected "599950419", got "831995773"
Test 25
Group: 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 23 aybabtuxaybabtuyaybabtu |
| correct output |
|---|
| 548809016 |
| user output |
|---|
| 548809016 |
Test 26
Group: 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 50 ababababababababababababababab... |
| correct output |
|---|
| 765799780 |
| user output |
|---|
| 765799780 |
Test 27
Group: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000000 50 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 28
Group: 4, 5
Verdict: RUNTIME ERROR
| input |
|---|
| 1000000 50 bbaababbaaabbabababbaaaaaabbaa... |
| correct output |
|---|
| 514073453 |
| user output |
|---|
| (empty) |
Test 29
Group: 4, 5
Verdict: RUNTIME ERROR
| input |
|---|
| 1000000 50 aabccabbbbabccabcdcdadbcdccdac... |
| correct output |
|---|
| 438094288 |
| user output |
|---|
| (empty) |
Test 30
Group: 4, 5
Verdict: RUNTIME ERROR
| 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: WRONG ANSWER
| input |
|---|
| 1000000 50 aabbbbbbbbbbbbbbbbbbbbbbbbbbbb... |
| correct output |
|---|
| 280596224 |
| user output |
|---|
| 495556145 |
Feedback: Incorrect character on line 1 col 1: expected "280596224", got "495556145"
Test 33
Group: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000000 23 aybabtuxaybabtuyaybabtu |
| correct output |
|---|
| 268144314 |
| user output |
|---|
| 268144314 |
Test 34
Group: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000000 50 ababababababababababababababab... |
| correct output |
|---|
| 655244665 |
| user output |
|---|
| 655244665 |
Test 35
Group: 5
Verdict: ACCEPTED
| input |
|---|
| 1000000000 50 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 36
Group: 5
Verdict: RUNTIME ERROR
| input |
|---|
| 1000000000 50 abbbaabbaaaaabbbbabbabbaaaaaba... |
| correct output |
|---|
| 911059863 |
| user output |
|---|
| (empty) |
Test 37
Group: 5
Verdict: RUNTIME ERROR
| input |
|---|
| 1000000000 50 cbabbcaadabbcabbdbdabbbcccbdca... |
| correct output |
|---|
| 994268014 |
| user output |
|---|
| (empty) |
Test 38
Group: 5
Verdict: RUNTIME ERROR
| input |
|---|
| 1000000000 50 pehyicejeninplaczwezhahmbhwfwi... |
| correct output |
|---|
| 837165971 |
| user output |
|---|
| (empty) |
Test 39
Group: 5
Verdict: ACCEPTED
| input |
|---|
| 1000000000 1 a |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 40
Group: 5
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000000000 50 aabbbbbbbbbbbbbbbbbbbbbbbbbbbb... |
| correct output |
|---|
| 114333489 |
| user output |
|---|
| (empty) |
Test 41
Group: 5
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000000000 23 aybabtuxaybabtuyaybabtu |
| correct output |
|---|
| 628064772 |
| user output |
|---|
| (empty) |
Test 42
Group: 5
Verdict: ACCEPTED
| input |
|---|
| 1000000000 50 ababababababababababababababab... |
| correct output |
|---|
| 802946327 |
| user output |
|---|
| 802946327 |
