CF961F.k-substrings

省选/NOI-

通过率:0%

时间限制:4.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a string s consisting of n lowercase Latin letters.

Let's denote k-substring of s as a string subs__k = s__k__s__k + 1..s__n + 1 - k. Obviously, _subs_1 = s, and there are exactly such substrings.

Let's call some string t an odd proper suprefix of a string T iff the following conditions are met:

  • |T| > |t|;
  • |t| is an odd number;
  • t is simultaneously a prefix and a suffix of T.

For evey k-substring () of s you have to calculate the maximum length of its odd proper suprefix.

给你一个由 $ n $ 个小写拉丁字母组成的字符串 $ s $。

我们定义 $ s $ 的第 $ k $ 个子串为字符串 $ \text{subs}k = s_k s{k+1} \dots s_{n+1-k} 。显然,。显然, \text{subs}_1 = s $,且这样的子串恰好有 个。

我们称某个字符串 $ t $ 是字符串 $ T $ 的一个奇真超前缀(odd proper suprefix),当且仅当满足以下条件:

  • $ |T| > |t| $;
  • $ |t| $ 是奇数;
  • $ t $ 同时是 $ T $ 的前缀和后缀。

对于 $ s $ 的每一个 $ k $-子串(即 ),你需要计算其奇真超前缀的最大长度。

输入格式

The first line contains one integer n (2 ≤ n ≤ 106) — the length s.

The second line contains the string s consisting of n lowercase Latin letters.

第一行包含一个整数 nn(2≤n≤1062 \leq n \leq 10^6)——字符串 ss 的长度。

第二行包含一个由 nn 个小写拉丁字母组成的字符串 ss。

输出格式

Print integers. i-th of them should be equal to maximum length of an odd proper suprefix of i-substring of s (or  - 1, if there is no such string that is an odd proper suprefix of i-substring).

输出 个整数。其中第 ii 个整数应等于字符串 ss 的第 ii 个子串的所有奇数真“suprefix”(超前缀)的最大长度(若该子串不存在任何奇数真“suprefix”,则输出 −1-1)。

输入输出样例

  • 输入#1

    15
    bcabcabcabcabca

    输出#1

    9 7 5 3 1 -1 -1 -1
  • 输入#2

    24
    abaaabaaaabaaabaaaabaaab

    输出#2

    15 13 11 9 7 5 3 1 1 -1 -1 1
  • 输入#3

    19
    cabcabbcabcabbcabca

    输出#3

    5 3 1 -1 -1 1 1 -1 -1 -1

说明/提示

The answer for first sample test is folowing:

  • 1-substring: bcabcabcabcabca
  • 2-substring: cabcabcabcabc
  • 3-substring: abcabcabcab
  • 4-substring: bcabcabca
  • 5-substring: cabcabc
  • 6-substring: abcab
  • 7-substring: bca
  • 8-substring: c

第一个样例测试的答案如下:

  • 1-子串:bcabcabcabcabca
  • 2-子串:cabcabcabcabc
  • 3-子串:abcabcabcab
  • 4-子串:bcabcabca
  • 5-子串:cabcabc
  • 6-子串:abcab
  • 7-子串:bca
  • 8-子串:c

输入解题思路,AI测评打分。不知道怎么写?

首页