여행자

면접 대비

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

요약
n개 마을 사이의 거리와 m일 동안의 동서 이동이 주어질 때, 이동한 총 거리를 100000으로 나눈 나머지를 구한다.
난이도

쉬움10점 중 3점

유형
누적 합, 배열, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

당신은 JOI 가도를 따라 여행하는 여행자이다. JOI 가도는 동서로 곧게 뻗은 도로이며, 그 위에는 nn개의 역참 마을이 있다. 역참 마을에는 서쪽에서 동쪽 순서로 11부터 nn까지 번호가 매겨져 있으며, 가장 서쪽 마을이 마을 11, 가장 동쪽 마을이 마을 nn이다.

당신은 마을 11에서 출발하여 mm일 동안 여행을 떠난다. 여행 일정은 수열 a1,a2,…,ama_1, a_2, \ldots, a_m으로 정해지며, 각 aia_i는 ii일째의 이동을 나타내는 00이 아닌 정수이다. ii일째에 출발하는 마을을 마을 kk라 하면, 그날 당신은 마을 kk에서 마을 k+aik + a_i까지 곧장 이동한다.

역참 마을의 개수 nn, 여행 일수 mm, 인접한 두 마을 사이의 거리, 그리고 이동을 나타내는 수열 a1,a2,…,ama_1, a_2, \ldots, a_m이 주어질 때, mm일 동안의 총 이동 거리를 100000=105100000 = 10^5으로 나눈 나머지를 구하는 프로그램을 작성하라.

입력

첫째 줄에 두 정수 nn과 mm이 공백으로 구분되어 주어진다. nn (2≤n≤100000=1052 \le n \le 100000 = 10^5)은 JOI 가도 위 역참 마을의 개수이고, mm (1≤m≤100000=1051 \le m \le 100000 = 10^5)은 여행 일수이다.

이어지는 n−1n - 1개의 줄은 인접한 두 마을 사이의 거리를 나타낸다. i+1i + 1번째 줄 (1≤i≤n−11 \le i \le n - 1)에는 마을 ii와 마을 i+1i + 1 사이의 거리를 나타내는 양의 정수 sis_i (1≤si≤1001 \le s_i \le 100)가 주어진다.

이어지는 mm개의 줄은 이동을 나타내는 수열이다. i+ni + n번째 줄 (1≤i≤m1 \le i \le m)에는 ii일째의 이동을 나타내는 00이 아닌 정수 aia_i가 주어진다.

주어지는 데이터에서는 마을 11보다 서쪽으로 이동하거나 마을 nn보다 동쪽으로 이동하는 일은 없다.

출력

mm일 동안의 총 이동 거리를 100000=105100000 = 10^5으로 나눈 나머지를 한 줄에 출력한다.

참고

첫 번째 예제에서의 이동은 다음과 같다. 11일째에 마을 11에서 마을 33으로, 22일째에 마을 33에서 마을 22로, 33일째에 마을 22에서 마을 55로, 44일째에 마을 55에서 마을 77로, 55일째에 마을 77에서 마을 44로 이동한다. 55일 동안의 총 이동 거리는 1818이다.

예제5

  1. 예제 1

    입력
    7 5
    2
    1
    1
    3
    2
    1
    2
    -1
    3
    2
    -3
    
    예상 출력
    18
    
  2. 예제 2

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

    입력
    2 4
    100
    1
    -1
    1
    -1
    
    예상 출력
    400
    
  4. 예제 4

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

    입력
    4 2
    10
    20
    30
    3
    -3
    
    예상 출력
    120