Cod sursa(job #3330710)

Utilizator SoniaMaria2008Sonia Maria Manjina SoniaMaria2008 Data 21 decembrie 2025 13:52:42
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;

int main()
{
    ifstream f("prefix.in");
    ofstream g("prefix.out");

    int t;
    f >> t;

    while(t--)
    {
        char sir[1000005];
        f >> sir;

        int len = strlen(sir);
        vector<int> p(len);

        int l = 0, maxim = 0;

        for(int j = 1; j < len; j++)
        {
            while(l > 0 && sir[j] != sir[l])
                l = p[l - 1];

            if(sir[j] == sir[l])
                l++;

            p[j] = l;
        }
        for(int j=2; j<=len; j++)
        {
            if(p[j-1]>0)
            {
                int perioada=j-p[j-1];
                if(j%perioada==0)
                {
                    maxim=j;
                }
            }
            
        }

        g << maxim << '\n';
    }

    return 0;
}