Cod sursa(job #2701965)

Utilizator hurjui12AlexandruHurjui Alexandru-Mihai hurjui12Alexandru Data 2 februarie 2021 14:37:44
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#include <string>
using namespace std;

ifstream fin("prefix.in");
ofstream fout("prefix.out");

string a;
int p[1000001];

int main()
{
    int t, i, n, j, sol;
    fin >> t;
    for (;t;t--)
    {
        fin >> a;
        n = a.size();
        sol = 0;
        for (i = 1; i<n; i++)
        {
            j = p[i-1];
            while (j > 0 && a[i] != a[j])
                j = p[j-1];
            if (a[i] == a[j])
                j++;
            p[i] = j;

            if (p[i] && (i + 1)%(i + 1 - p[i]) == 0)
                sol = i+1;
        }
        fout << sol << '\n';
    }
    return 0;
}