出处:http://blog.csdn.net/ACM_cxlove?viewmode=contents by—cxlove
题目:有两个串,s,f f(s, i, j) = s[i + 1… j - 1] + r(s[j… n - 1]) + r(s[0… i]).
通过二元组(i,j)对原串s进行变换,得到新的串,现在要你求这个二元组
http://codeforces.com/problemset/problem/119/D
D. String Transformation time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output
Let s be a string whose length equals n. Its characters are numbered from 0 to n - 1,i and j are integers,0 ≤ i < j < n. Let’s define functionf as follows:
f(s, i, j) = s[i + 1…j - 1] + r(s[j… n - 1]) + r(s[0…i]).
Here s[p… q] is a substring of strings, that starts in position p and ends in position q (inclusive); “+” is the string concatenation operator;r(x) is a string resulting from writing the characters of thex string in the reverse order. If j = i + 1, then the substring s[i + 1…j - 1] is considered empty.
You are given two strings a and b. Find such values of i andj, that f(a, i, j) = b. Numberi should be maximally possible. If for thisi there exists several valid values of j, choose the minimal j.
Input
The first two input lines are non-empty strings a andb correspondingly. Each string’s length does not exceed106 characters. The strings can contain any characters with ASCII codes from 32 to 126 inclusive.
Output
Print two integers i, j — the answer to the problem. If no solution exists, print “-1 -1” (without the quotes).
Sample test(s) Input
Die Polizei untersucht eine Straftat im IT-Bereich. untersucht eine Straftat.hciereB-TI mi ieziloP eiD
Output
11 36
Input
cbaaaa aaaabc
Output
4 5
Input
123342 3324212
Output
-1 -1