Fişierul intrare/ieşire:kalindrome.in, kalindrome.outSursăIIOT 2021-22 Runda 2
AutorWilliam Di LuigiAdăugată destefdascalescuStefan Dascalescu stefdascalescu
Timp execuţie pe test0.5 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Kalindrome

William loves strings and their properties, and he is especially fond of palindromes. He likes palindromes so much, that he started reading lots of research papers on them and finally stumbled upon a new kind of property that generalizes the palindrome concept: the kalindrome.

We say that a string is a kalindrome if, for some positive integer K, it's possible to split the string in many substrings, each of them K characters long, so that they can be read from left to right in the same way as right to left. More precisely: if we concatenate the substrings starting from the last one, we will recreate the original string.

For example: the word banaba is a kalindrome, because if we choose K=2 then we obtain the substrings: ba, na, ba, which can indeed be concatenated starting from the last one, to reconstruct the original word.

You might have noticed that, by this definition, any string is a kalindrome! That's true, in fact we could choose K to be equal to the string's length, and we would then obtain a single substring which would of course respect the definition! However, William is interested to know what's the smallest K for a given string that would prove it is a kalindrome.

Help him by writing a program that automates this test!

Date de intrare

The input file kalindrome.in contains the only integer N, 1 ≤ N ≤ 10^6, the length of the string to be tested. The second line contains a string S, consisting of lowercase letters.

Date de ieşire

You will need to write in the output file kalindrome.out a single line with an integer: the smallest positive integer K that proves the kalindromeness of the string S.

Restricţii

  • For tests worth 40 points, K is either 1 or N.
  • For tests worth 40 more points, 1 ≤ N ≤ 1000.
  • The scores obtained now may be different compared to the ones from the original contest

Exemplu

kalindrome.inkalindrome.out
6
banaba
2
kalindrome.inkalindrome.out
12
eszyciyciesz
3

Explicaţie

In the first sample case, we can split the string in three 2-characters long substrings: ba, na, ba.

In the second sample case, we can split the string in four 3-characters long substrings: esz, yci, yci,
esz.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?