Cod sursa(job #2653557)

Utilizator Stefan_PiscuPiscu Stefan Constantin Stefan_Piscu Data 28 septembrie 2020 15:25:56
Problema Prefix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.47 kb
#include <bits/stdc++.h>
using namespace std;

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

int t;

int main()
{
  fin>>t;
  while(t--){
    string s;
    fin>>s;
    int n=s.size();
    vector<int> pi(n, 0);
    int sol=0;
    for(int i=1;i<n;++i){
      int j=pi[i-1];
      while(j&&s[i]!=s[j]) j=pi[j-1];
      if(s[i]==s[j]) j++;
      pi[i]=j;
      if(pi[i]&&((i+1)%(i-pi[i]+1)==0)) sol=i+1;
    }
    fout<<sol<<"\n";
  }
  return 0;
}