Codeforces Round 175 (Div. 2) |
---|
Закончено |
Петя и Вася играют в следующую игру. У Пети есть n непрозрачных стаканов, стоящих в ряд. Места, на которых стоят стаканы, пронумерованы целыми числами от 1 до n слева направо. Обратите внимание, что пронумерованы места, а не сами стаканы.
Сначала Петя кладет шарик под стакан, стоящий на месте номер s. Затем Петя совершает некоторое (возможно, нулевое) количество операций перемешивания. Одна операция перемешивания состоит в перемещении стакана на первом месте на место p1, стакана на втором месте на место p2 и так далее. То есть стакан с места i переместится на место pi. Считайте, что все перемещения стаканов происходят одновременно. Во время перемешивания стаканов шарик не перекатывается из стакана в стакан, он перемещается вместе с тем стаканом, в который его положили изначально.
После всех операций перемешивания Петя показывает Васе, что шарик оказался на месте t. Задача Васи состоит в том, чтобы сказать, какое минимальное количество операций перемешивания совершил Петя, или определить, что Петя совершил ошибку, и шарик не мог попасть из позиции s в позицию t.
В первой строке содержатся три целых числа: n, s, t (1 ≤ n ≤ 105; 1 ≤ s, t ≤ n) — количество стаканов, начальное положение шарика и конечное положение шарика. Во второй строке содержатся n целых чисел, разделенных пробелами: p1, p2, ..., pn (1 ≤ pi ≤ n) — параметры операции перемешивания. Гарантируется, что все pi различны.
Обратите внимание, что s может быть равно t.
Если шарик может переместиться с места s на место t, то в единственной строке выведите целое неотрицательное число — минимальное количество операций перемешивания, необходимых для того, чтобы шарик попал на место t. Если же это невозможно, то выведите число -1.
4 2 1
2 3 4 1
3
4 3 3
4 1 3 2
0
4 3 4
1 2 3 4
-1
3 1 3
2 1 3
-1
Название |
---|