Submission #527701

#TimeUsernameProblemLanguageResultExecution timeMemory
527701vjudge1Beads and wires (APIO14_beads)C++14
0 / 100
1068 ms1884 KiB
#include<iostream>
#include<stdio.h>
#include<string.h>
#define mx 1000005
using namespace std;

char arr[mx];
int prefix[mx];

void prefix_array(string s)
{
    int l = s.length();

    for(int i=1; i<l; i++)
    {
        int j = prefix[i-1];

        while(j>0 && s[i]!=s[j])
        {
            j = prefix[j-1];
        }

        if(s[i]==s[j])
        {
            j++;
        }

        prefix[i] = j;
    }

}

int main()
{
    while(scanf("%s",arr))
    {
        int l= strlen(arr);
        if(arr[0]=='.')
            break;

        prefix_array(arr);
        int d = l - prefix[l-1];
        if(l%d==0)
        {
            cout << l/d << endl;
        }
        else
        {
            cout << 1 << endl;
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...