아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

악수

시간 제한2초메모리 제한512 MB

요약
각 직원이 먼저 도착한 사람들과 악수한 횟수가 주어질 때, 한 직원이 가질 수 있는 친구 수의 최댓값을 구한다.
난이도

보통10점 중 7점

유형
그리디, 그래프, 배열, 구현
정답자
아직 제출이 없습니다

문제

한 대기업에 nn명의 직원이 있다. 직원들은 매일 출근하는 순서대로 11부터 nn까지의 연속된 정수 번호를 부여받는다. 두 직원이 동시에 출근하는 일은 없으므로, 11번 직원이 가장 먼저, 22번 직원이 두 번째로 출근하는 식이다.

일부 직원 쌍은 친구 사이이며, 친구 관계는 대칭이다. 즉 ii번 직원이 jj번 직원을 친구로 여기면 jj번 직원도 ii번 직원을 친구로 여긴다. 어떤 직원이 출근하면 사무실을 빠르게 돌며 이미 사무실에 있는 친구, 즉 자신보다 먼저 출근한 친구 모두와 악수를 한다. 어떤 직원 쌍이 친구인지는 알려져 있지 않지만, 각 직원이 출근 직후 매일 하는 악수 횟수는 알려져 있다.

회사 대표는 직원 한 명과 회사 현황에 관해 이야기하려고 한다. 이를 위해 가장 사교적인 사람, 즉 친구가 가장 많은 직원을 고르려고 한다. 주어진 정보로 직원 한 명이 가질 수 있는 친구 수의 최댓값을 구하라.

입력

첫째 줄에 회사 직원 수 nn이 주어진다. (1≤n≤200 0001 \leq n \leq 200\,000)

둘째 줄에 nn개의 정수 h_ih\_i가 주어진다. (0≤h_i<i0 \leq h\_i < i) ii번째 수는 ii번 직원이 출근 직후, 즉 i+1i + 1번 직원이 출근하기 전에 한 악수 횟수이다.

출력

직원 한 명이 가질 수 있는 친구 수의 최댓값을 출력한다.

힌트

첫 번째 예제에는 직원 쌍이 하나뿐이고, h_2=1h\_2 = 1이라는 사실에서 두 직원이 친구임을 알 수 있다.

두 번째 예제에서 33, 44, 55번 직원이 모두 같은 직원과 악수했다면 그 직원의 친구는 33명이다.

예제2

  1. 예제 1

    입력
    2
    0 1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    5
    0 0 1 1 1
    
    예상 출력
    3