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

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

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

Бали: 50,00 (partial)
Time limit: 2.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
Assembly, Awk, Brain****, C, C++, Java, mono C#, Pascal, Perl, Python, Sed, Text, vb

Планується відправити експедицію до сусідньої зоряної системи. Були відібрані ~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

Коментарі

Please read the guidelines before commenting.


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