만드는 중입니다

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

카라반 여행 계획

면접 대비

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

요약
시작 지점 0에서 출발해 뒤로 가지 않고, 지정한 날짜에 지정한 오아시스에 도착하는 서로 다른 여행 계획의 수를 셉니다.
난이도

보통10점 중 4점

유형
동적 계획법, 배열
정답자
아직 제출이 없습니다

문제

카라반 경로는 하루 이동 거리보다 조금 짧은 간격으로 늘어선 야영지의 순서이다. 각 야영지는 물이 적은 건조 야영지이거나, 물과 가축 사료가 풍부한 오아시스이다. 카라반 여행은 항상 오아시스에서 출발해 오아시스에서 끝나며, 지나온 야영지로 되돌아가지 않는다. 카라반 여행은 목적지 오아시스와 그곳에 도착하는 데 걸리는 일수로 정해진다. 예를 들어 오아시스가 2, 3, 5, 7, 11번 야영지에 있고, 카라반이 10일 뒤에 7번 야영지에서 다른 카라반과 만나려 한다고 하자. 이때 카라반은 3일을 기다렸다가 곧장 7번 야영지로 갈 수 있고, 지금 출발해 7번 야영지에서 3일을 기다릴 수 있으며, 2, 3, 5번 야영지에서 각각 하루씩 기다릴 수도 있다. 카라반 여행 계획은 매일 밤 어느 야영지에 머물지를 정한 것이다. 예를 들어 2, 3, 5번 야영지에서 각각 하루씩 기다리면 여행 계획은 1, 2, 2, 3, 3, 4, 5, 5, 6, 7이 된다.

오아시스가 2, 3, 5, 7, 11번 야영지에 있을 때, 5번 야영지까지 7일이 걸리는 여행에는 아래와 같이 10가지 여행 계획이 있다. 0은 출발 지점에서 쉬는 것을 뜻한다.

0012345, 0122345, 0123345, 0123455, 1222345, 1223345, 1223455, 1233345, 1233455, 1234555

카라반 경로 위 오아시스의 위치와, 여행마다 목적지 번호와 소요 일수가 주어질 때, 각 여행에 대해 서로 다른 여행 계획의 수를 구하는 프로그램을 작성하라.

입력

첫 줄에는 공백으로 구분된 두 정수 NN과 MM이 주어진다. NN은 주어질 오아시스 위치의 개수이고, MM은 여행 계획 수를 구할 카라반 여행의 개수이다. 5≤N≤205 \le N \le 20, 1≤M≤101 \le M \le 10.

둘째 줄에는 각 오아시스까지의 일수 OnO_n이 공백으로 구분되어 오름차순(On−1<OnO_{n-1} < O_n)으로 주어진다. 1≤On≤601 \le O_n \le 60.

나머지 MM개 줄에는 각각 공백으로 구분된 두 정수 DmD_m과 TmT_m이 주어진다. DmD_m은 목록에서 목적지 오아시스의 번호이고, TmT_m은 그곳에 도착하는 데 걸리는 일수이다. 1≤Dm≤N1 \le D_m \le N, ODm≤Tm≤60O_{D_m} \le T_m \le 60.

출력

MM개의 줄을 출력한다. kk번째 줄에는 입력의 k+2k+2번째 줄에 주어진 여행에 대해, 둘째 줄의 야영지 경로에서 가능한 서로 다른 여행 계획의 수를 정수 하나로 출력한다.

예제2

  1. 예제 1

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

    입력
    8 3
    2 3 5 7 11 13 17 19
    3 7
    5 15
    8 24
    
    예상 출력
    10
    126
    1287