Cod sursa(job #3235191)
Utilizator | Data | 16 iunie 2024 10:01:29 | |
---|---|---|---|
Problema | Prefix | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.27 kb |
#include<fstream>
using namespace std;ifstream f("prefix.in");ofstream g("prefix.out");int k[1 << 20],i,j;char s[1 << 20];int main(){for(f>>i;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(;i;--i)if(k[i-1]&&i%(i-k[i-1])==0)break;g<<i<<'\n';}}