Pagini recente » Cod sursa (job #1986953) | Cod sursa (job #1048235) | Cod sursa (job #1585157) | Cod sursa (job #670727) | Cod sursa (job #2472428)
#include <bits/stdc++.h>
#define MAX_LENGTH 1000001
using namespace std;
char sir[MAX_LENGTH];
size_t aux[MAX_LENGTH];
int main()
{
ios_base::sync_with_stdio(false);
ifstream fin("prefix.in");
ofstream fout("prefix.out");
size_t T;
fin >> T;
fin.getline(sir, '\n');
for(size_t t = 1; t <= T; ++t)
{
fin.getline(sir, MAX_LENGTH, '\n');
size_t MAX = 0;
for(size_t k = 0, i = 1; sir[i] != '\0'; ++i)
{
while(k > 0 && sir[i] != sir[k]) k = aux[k - 1];
if(sir[i] == sir[k]) ++k;
aux[i] = k;
if(aux[i] != 0 && aux[i] % (i + 1 - aux[i]) == 0) MAX = i + 1;
}
fout << MAX << '\n';
}
}