11888. Ресторан


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

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

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

Люди \(0, 1, \ldots (N-1)\) сидять навколо поворотного столика в порядку проти годинникової стрілки, на рівних відстанях. Блюдо \(p_i\) знаходиться перед людиною \(i\) на столі. Ви можете виконати наступну операцію 0 або більше разів:

  • Поверніть поворотний столик на \(1/N\)-ту оберту проти годинникової стрілки. У результаті страва, яка була перед особою \(i\) прямо перед поворотом, тепер знаходиться перед особою \((i+1) \bmod N\).

Коли ви закінчите, людина \(i\) буде задоволена, якщо блюдо \(i\) стоїть перед людиною \((i-1) \bmod N\), людиною \(i\) або людиною \((i+1) \bmod N(\).

Знайдіть максимально можливу кількість щасливих людей.

Обмеження

  • \(3 \leq N \leq 2 \times 10^5\)
  • \(0 \leq p_i \leq N-1\)
  • \(p_i \neq p_j\) якщо \(i \neq j\).
  • Усі значення у вхідних даних є цілими числами.

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

Перший рядок містить ціле число \(N\)

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

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

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

У вихідний потік виведіть відповідь.

Примітка

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

Ось четверо щасливих людей:

  • Особа 0 щаслива, тому що блюдо 0 стоїть перед особою 3 (=(0-1) mod 4));
  • Особа 1 щаслива, тому що страва 1 стоїть перед особою 1 (=1);
  • Особа 2 щаслива, тому що блюдо 2 стоїть перед особою 2 (=2);
  • Особа 3 щаслива, тому що блюдо 3 стоїть перед особою 0 (=(3+1) mod 4).

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

4
1 2 0 3

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

4

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

3
0 1 2

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

3

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

10
3 9 6 1 7 2 8 0 5 4

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

5

Коментарі

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