Cod sursa(job #2503142)

Utilizator NoemikulcsarKulcsar Noemi Noemikulcsar Data 2 decembrie 2019 16:19:15
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;
const int MAXN = 2000041;
int v[MAXN];
int nr;

void sirprefixe(char x[], int n)
{
    nr=0;
    int j=0;
    for(int i=2; i<=n; i++)
    {
        while(j>0 && x[i]!=x[j+1])
        {
            j = v[j];
        }
        if(x[i]==x[j+1])
            j++;
        v[i] = j;
        int d=i-j;
        if(j!=0 && i%d==0)
            nr = max(nr, (i/d)*d);
    }
}



int main()

{

    ifstream fin ("prefix.in");

    ofstream fout ("prefix.out");



    int n, t;

    char a[MAXN],g[50];

    fin >> t;

    fin.getline(g, 50);

    for(int i=0; i<t; i++)

    {

        fin.getline(a+1, MAXN);

        n = strlen(a+1);



        sirprefixe(a, n);

        fout << nr << "\n";

    }





    return 0;

}