만드는 중입니다

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

보드게임

면접 대비

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

요약
원형 보드에서 0이 적힌 칸은 주사위 눈만큼, 그 밖의 칸은 적힌 값만큼 움직일 때 1번 칸에서 방문할 수 있는 칸을 구합니다.
난이도

쉬움10점 중 3점

유형
그래프, BFS
정답자
아직 제출이 없습니다

문제

며칠 전 친구에게 Tsirkus와 비슷하지만 순환하는 보드게임을 선물로 받았다.

게임판에는 1,…,N1, \ldots, N번 칸이 일렬로 놓여 있고, 칸 NN 다음은 칸 11이다. 각 칸 ii에는 정수 aia_i가 적혀 있다.

  • ai=0a_i = 0이면 플레이어는 칸 ii에서 6면체 주사위를 던져 나온 눈만큼 앞으로 이동한다.
  • ai≠0a_i \ne 0이면 aia_i칸만큼 이동한다. aia_i가 음수이면 뒤로 이동한다.

두 번째 규칙은 0이 적힌 칸에 도착할 때까지 반복된다. 무한 순환에 빠질 수도 있다. 게임은 칸 11에서 시작하며 a1=0a_1 = 0이다.

게임을 하다 보니 어떻게 해도 도달할 수 없는 칸이 있을 것 같다는 생각이 들었다. 게임 중에 방문할 수 있는 칸을 모두 찾는 프로그램을 작성하라.

입력

첫 줄에 칸의 개수 NN (1≤N≤10001 \le N \le 1000)이 주어진다. 둘째 줄에는 공백으로 구분된 정수 a1,…,aNa_1, \ldots, a_N (−N<ai<N-N < a_i < N, a1=0a_1 = 0)이 주어진다.

출력

공백으로 구분된 NN개의 수를 한 줄에 출력한다. 각 수는 0 또는 1이다. ii번째 수가 1이면 칸 ii를 방문할 수 있고, 0이면 방문할 수 없다.

예제2

  1. 예제 1

    입력
    10
    0 8 2 2 2 4 -6 0 -1 0
    
    예상 출력
    1 1 1 1 1 1 1 0 0 1
    
  2. 예제 2

    입력
    11
    0 6 5 4 3 2 1 -1 0 0 0
    
    예상 출력
    1 1 1 1 1 1 1 1 0 0 0