Cod sursa(job #2460414)
Utilizator | Data | 23 septembrie 2019 17:42:27 | |
---|---|---|---|
Problema | Prefix | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.27 kb |
#include <fstream>
int t,k[1<<20],n,i,j;char s[1<<20];main(){std::ifstream f("prefix.in");std::ofstream o("prefix.out");f>>t;while(t--){f>>s;for(i=1,j=0;s[i];++i)if(s[i]==s[j])k[i]=++j;else k[i]=j=(s[i]==s[0]);for(j=0;i&&!j;--i)if(k[i-1]&&i%(i-k[i-1])==0)j=i;o<<j<<'\n';}}