Cod sursa(job #2460403)

Utilizator minecraft3Vintila Valentin Ioan minecraft3 Data 23 septembrie 2019 17:33:05
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.42 kb
#include <fstream>

int t, kmp[1<<20], n, i, j;
char s[1<<20];

int main() {
    std::ifstream f("prefix.in");
    std::ofstream o("prefix.out");

    f>>t; do {
        f>>s;
        for(i=1,j=0; s[i]; ++i)
            if(s[i]==s[j]) kmp[i]=++j;
            else kmp[i]=j=(s[i]==s[0]);
        for(j=0; i; --i)
            if(kmp[i-1]&&i%(i-kmp[i-1])==0){j=i;break;}
        o<<j<<'\n';
    } while(--t);
}