11641. Секрет


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

У Степана є \(N\) друзів. Назвемо їх: Друг 1, Друг 2, …, Друг N. Одного разу Степан випадково провідомив одному зі своїх друзів, Другу \(X\), його таємницю. Для кожного \(i = 1, 2, \ldots, N\), коли друг \(i\) дізнається секрет, він/вона поділиться ним із другом \(A_i\), якщо Друг \(A_i\) ще цього не знає.

Скільки друзів Степана врешті дізнаються цого секрет?

Формат вхідних даних

Перший рядок містить цілі числа \(N,X\) (\(2 \le N \le 10^5\), \(1 \le X \le N\))

Наступний  рядок містить \(N\) цілих чисел \(A_i\) (\(1 \le A_i \le N\), \(A_i \neq i\))

Числа у рядках розділяються пропуском.

Формат вихідних даних

У вихідний потік виведіть шукану кількість друзів.

Примітка

До прикладу 1:

Секрет Степан дізнаються Друг 1, Друг 2 і Друг 3, як показано нижче.

  • Степан повідомив Другу 2 секрет.

  • Друг 2 ділиться цим із другом 1.

  • Друг 1 ділиться цим із другом 3.

Зрештою, троє його друзів дізнаються секрет, тому ми виводимо 3.

Приклад вхідних даних

4 2
3 1 1 2

Приклад вихідних даних

3

Приклад вхідних даних

20 12
7 11 10 1 7 20 14 2 17 3 2 5 19 20 8 14 18 2 10 10

Приклад вихідних даних

7

Коментарі

Ще немає коментарів.