1 solutions

  • 3
    @ 2024-11-20 14:35:43
    #include<bits/stdc++.h>
    #define N 1000005
    using namespace std;
    string b;
    int lb;
    int f[N];
    void border()
    {
    	int j=0;
    	for(int i=1;i<lb;i++)
    	{
    		while(j && b[i]!=b[j])
    			j=f[j-1];
    		if(b[i]==b[j])
    			j++;
    		f[i]=j;
    	}
    }
    int main()
    {
        cin>>b;
        while(b!=".")
        {
            lb=b.size();
            border();
            if(lb%(lb-f[lb-1])==0)
                cout<<lb/(lb-f[lb-1])<<"\n";
            else
                cout<<"1\n";
            cin>>b;
        }
    	return 0;
    }
    
    • 1

    Information

    ID
    37
    Time
    1000ms
    Memory
    512MiB
    Difficulty
    6
    Tags
    # Submissions
    37
    Accepted
    13
    Uploaded By