1720: Експедиція

Перегляд у форматі PDF

Надіслати розв'язок

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

Author:
Problem type

Планується відправити експедицію до сусідньої зоряної системи. Були відібрані \(n\) кандидатів, пронумерованих від 1 до \(n\), серед яких необхідно вибрати учасників експедиції. Організатори хочуть відправити у експедицію якомога більше кандидатів. Серед кандидатів було проведено опитування, в процесі якого кожен міг вказати не більше, ніж одного з інших кандидатів, з яким він не готовий відправитися в експедицію. Результатом опитування для \(i\)-го кандидата є ціле число \(a_i\), яке дорівнює номеру кандидата, з яким \(i\)-й кандидат не готовий відправитися в експедицію, або -1, якщо \(i\)-й кандидат готовий відправитися в експедицію в будь-якому складі.

Тепер організатори повинні вибрати, хто з кандидатів відправиться в експедицію. Вирішено було вибрати учасників експедиції так, що якщо туди входить деякий кандидат \(i\), і \(a_i \neq -1\), то туди не входить кандидат \(a_i\). Організатори хочуть вибрати максимальну кількість учасників експедиції.

Потрібно написати програму, яка за заданими результатами опитування кандидатів визначає максимальну кількість кандидатів, яких можна відправити в експедицію.

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

У першому рядку вхідних даних знаходиться ціле число \(n\) - кількість кандидатів (\(1 \le n \le 300 000\)).

У наступних \(n\) рядках дано результати опитування, \(i\)-й з цих рядків містить результат опитування \(i\)-го кандидата, ціле число \(a_i\) (\(a_i = -1\) або \(1 \le a_i \le n\), \(a_i \neq i\)).

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

У єдиному рядку виведіть одне ціле число - максимальну кількість кандидатів, яких можна відправити в експедицію.

Scoring

Бали за кожну підзадачу нараховуються тільки у випадку, якщо всі тести для цієї підзадачі і необхідних підзадач успішно пройдені.

Підзадача 1: 19 балів, \(n \le 20\);

Підзадача 2: 10 балів, \(a_1 = -1\), для \(i > 1\) виконано \(a_i = i - 1\);

Підзадача 3: 15 балів, для всіх \(i\) виконано \(a_i < i\),

Підзадача 4: 13 балів, \(1 \le n \le 2000\),

Підзадача 5: 43 бали, \(1 \le n \le 300 000\),

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

4
2
4
2
1

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

2

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

3
2
-1
2

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

2

Коментарі

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