Cod sursa(job #2916251)

Utilizator raul41917raul rotar raul41917 Data 28 iulie 2022 17:49:35
Problema Prefix Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>
#include <cstring>
#define LMAX 1000005
using namespace std;
ifstream fi("prefix.in");
ofstream fo("prefix.out");
int T;
void Solve(char txt[LMAX],int &S)
{
    S=0;
    int len=0;
    int i=1;
    bool var=false;
    int M;
    while(i<strlen(txt))
    {
        if(txt[i]==txt[len])
        {
            len++;
            if(len*2==i+1)
            {
                M=len;
                S=i+1;
                var=true;
            }
            if(var==true)
            {
                if((i+1)%M==0)
                    S=i+1;
            }
            i++;
        }else
        {
            M=i+1;
            var=false;
            if(len!=0)
                len=0;
            else
                i++;
            if(i>strlen(txt)/2)
            {
                i=strlen(txt);
                continue;
            }
        }
    }
}
int main()
{
    fi>>T;
    for(register int test=1;test<=T;test++)
    {
        char txt[LMAX];
        fi>>txt;
        int S;
        Solve(txt,S);
        fo<<S<<"\n";
    }
    return 0;
}