QOJ.ac

QOJ

時間限制: 0.5 s 記憶體限制: 1024 MB 總分: 100

#26. 混乱的密码

统计

Alice 正在接收一个非常机密的密码。在接收过程中,她将其记录了下来。噢,看!他们把密码又重复了一遍!让我们把它写下来,以便找出可能存在的错误!

就在她记录的时候,她突然意识到自己在其中一个字母上犯了错误!糟糕的是,她还走神了一会儿,错过了流的结尾!更糟糕的是,她无法区分密码第一次重复的结束位置!谁能帮她找回密码呢?

给定一个由小写英文字母组成的字符串 $S[0 \dots (n-1)]$。请找出字符串中可能标记密码重复开始的第一个位置 $i$。形式化地,请找到满足以下条件的索引 $i$:

  1. $\frac{n}{2} \le i < n$
  2. 子串 $S[i \dots (n-1)]$ 与 $S[0 \dots (n-i-1)]$ 之间恰好有一个字符的差异。
  3. 在所有满足上述两个条件的索引中,$i$ 是最小的一个。

输入格式

第一行包含一个整数 $n$ ($2 \le n \le 500\,000$),表示字符串的长度。第二行包含字符串 $S$(由小写英文字母组成)。

输出格式

输出一行,包含满足条件的索引 $i$。如果不存在这样的索引,则输出 $-1$。

子任务

子任务 分值 最大 $n$
1 25 20
2 25 5000
3 50 500000

样例

输入格式 1

8
abaaaaaa

输出格式 1

4

说明

对应的字符串是 abaaaaaa

输入格式 2

9
abcdefghi

输出格式 2

8

输入格式 3

5
aaaaa

输出格式 3

-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.