atcoder#ABC284F. [ABC284F] ABCBAC

[ABC284F] ABCBAC

题目描述

長さ N N の文字列 S S および整数 i (0 i N) i\ (0\leq\ i\leq\ N) に対して、fi(S) f_i(S) を、

  • S S の先頭 i i 文字
  • S S を反転した文字列
  • S S の末尾 Ni N-i 文字

をこの順に連結した文字列と定義します。 例えば、S= S= abci=2 i=2 のとき、fi(S)= f_i(S)= abcbac です。

長さ 2N 2N の文字列 T T が与えられます。 fi(S)=T f_i(S)=T を満たす長さ N N の文字列 S S と整数 i (0 i N) i\ (0\leq\ i\leq\ N) の組を 1 1 つ見つけてください。 そのような S,i S,i の組が存在しない場合は、それを報告してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N T T

输出格式

条件を満たす S,i S,i の組が存在しないならば、-1 と出力せよ。 存在するならば、S,i S,i を改行区切りで出力せよ。 条件を満たす S,i S,i の組が複数存在する場合は、そのどれを出力しても良い。

题目大意

对于一个长度为 NN 的字符串 SS 和一个整数 i[0,N]i\in [0,N],定义 fi(S)f_i(S) 所得的字符串为以下三者顺次连接:

  • SS 的前 ii 个字符;
  • SS 翻转得到的字符串;
  • SS 的后 NiN-i 个字符。

例如,对于 S=abcS=\texttt{abc}i=2i=2fi(S)=abcbacf_i(S)=\texttt{abcbac}

现在有一个长度为 2N2N 的字符串 TT,你需要求出任意一对 (S,i)(S,i) 满足 fi(S)=Tf_i(S)=T。如果不存在,输出 1-1

翻译 by @Mars_Dingdang

3
abcbac
abc
2
4
abababab
abab
1
3
agccga
cga
0
4
atcodeer
-1

提示

制約

  • 1 N  106 1\leq\ N\ \leq\ 10^6
  • N N は整数
  • T T は英小文字からなる長さ 2N 2N の文字列

Sample Explanation 1

問題文中に書いた通り、S= S= abci=2 i=2 とすると fi(S)= f_i(S)= abcbac となって T T に一致するため、abc2 2 を出力します。

Sample Explanation 2

S= S= ababi=3 i=3 としても条件を満たします。

Sample Explanation 3

S= S= agci=3 i=3 としても条件を満たします。

Sample Explanation 4

条件を満たす S,i S,i の組が存在しない場合は -1 を出力してください。