Caso # | Resultado | Tiempo | Memoria |
---|---|---|---|
#1 |
Correcto
|
0.006 s | 14 KBi |
#2 |
Correcto
|
0.006 s | 35 KBi |
#3 |
Correcto
|
0.005 s | 22 KBi |
#4 |
Correcto
|
0.006 s | 26 KBi |
#5 |
Correcto
|
0.005 s | 2 KBi |
#6 |
Correcto
|
0.006 s | 2 KBi |
#7 |
Correcto
|
0.012 s | 2 KBi |
#8 |
Correcto
|
0.011 s | 8 KBi |
#9 |
Correcto
|
0.013 s | 2 KBi |
#10 |
Correcto
|
0.011 s | 2 KBi |
#11 |
Correcto
|
0.01 s | 2 KBi |
#12 |
Correcto
|
0.01 s | 2 KBi |
#13 |
Correcto
|
0.013 s | 8 KBi |
#14 |
Correcto
|
0.011 s | 2 KBi |
#15 |
Correcto
|
0.013 s | 13 KBi |
#16 |
Correcto
|
0.012 s | 2 KBi |
#17 |
Correcto
|
0.012 s | 15 KBi |
#18 |
Correcto
|
0.01 s | 2 KBi |
#19 |
Correcto
|
0.013 s | 2 KBi |
#20 |
Correcto
|
0.012 s | 2 KBi |
#21 |
Correcto
|
0.012 s | 2 KBi |
#22 |
Correcto
|
0.011 s | 2 KBi |
#include<iostream> #include<string> #include<vector> using namespace std; vector<int> ans(string &re){ vector<int> kmp(re.size(),0); int border = 0; for(int i = 1; i < re.size();++i){ while(border && re[i] != re[border]) border = kmp[border-1]; if(re[i] == re[border]) ++border; kmp[i] = border; } return kmp; } int main(){ string re; cin >> re; vector<int> kmp = ans(re); printf("%d\n",kmp.back()); return 0; }