만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

시간낭비

면접 대비

시간 제한1초메모리 제한1024 MB

요약
지건덕이 1번 칸에서 출발해 칸의 수만큼 이동할 때, 방향을 최대 두 번 바꿔 N번 칸에 처음 도착하는 최대 시간을 구합니다.
난이도

보통10점 중 5점

유형
동적 계획법, 그래프, 시뮬레이션
정답자
아직 제출이 없습니다

문제

건덕이는 학교에 가기 너무 싫은 나머지 최대한 늦게 학교에 도착하려고 한다. 등굣길은 NN개의 칸이 가로로 놓인 형태이며, 각 칸은 가장 왼쪽 칸부터 오른쪽으로 11부터 NN까지 번호가 매겨진다. 건덕이는 11번 칸에, 학교는 NN번 칸에 있다.

건덕이는 처음에 학교를 바라보는 방향으로 서 있다. 등교하는 방법은 특이하다. 1분마다 현재 서 있는 칸에 쓰인 수만큼 바라보는 방향으로 이동한다. 이때 등굣길을 벗어나도록 이동할 수 없다.

건덕이는 바라보는 방향을 최대 두 번 반전할 수 있다. 학교가 있는 칸에 처음으로 도착하는 시간을 최대한 늦추면 출발 몇 분 뒤에 도착할까? 방향을 반전하는 데 드는 시간은 무시한다.

첫 번째 줄에 학교가 있는 칸의 번호 NN이 주어진다. (3≤N≤200 000)\left( 3\leq N\leq 200\,000 \right)

두 번째 줄에 각 칸에 쓰인 정수 aia_i가 공백으로 구분되어 주어진다. (0≤ai≤200 000)\left( 0\leq a_i\leq 200\,000 \right)

입력

첫 번째 줄에 학교가 있는 칸의 번호 NN이 주어진다. (3≤N≤200 000)\left( 3\leq N\leq 200\,000 \right)

두 번째 줄에 각 칸에 쓰인 정수 aia_i가 공백으로 구분되어 주어진다. (0≤ai≤200 000)\left( 0\leq a_i\leq 200\,000 \right)

출력

건덕이가 시간을 최대한 끈 뒤, 학교가 있는 칸에 처음으로 도착하는 시간을 출력한다. 학교에 도착할 수 있는 경로가 없다면 −1-1을 출력한다.

예제4

  1. 예제 1

    입력
    5
    3 1 2 1 1
    
    예상 출력
    5
    
  2. 예제 2

    입력
    5
    4 1 2 1 1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    3
    1 2 1
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    9
    1 2 2 4 2 1 1 1 1
    
    예상 출력
    12