만드는 중입니다

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

개구리와 쿼리

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

요약
N×N 격자의 이동 비용을 바탕으로 각 질의마다 개구리가 오른쪽 끝에 도달하는 최소 시간을 구합니다. 개구리는 길이 L 이상의 위쪽 점프를 한 번 할 수 있습니다.
난이도

보통10점 중 6점

유형
동적 계획법, 누적 합, 행렬
정답자
아직 제출이 없습니다

문제

N×NN \times N 크기의 22차원 배열로 이루어진 연못에 QQ마리의 개구리가 모여 있다. 각 개구리는 초기 위치 (Sx,Sy)\left(S\\_{x},S\\_{y}\right)에서 배열의 오른쪽 끝 (X,N+1)\left(X,N+1\right)에 있는 육지에 도착해야 한다.

개구리는 현재 칸에서 YY좌표가 11만큼 증가하는 방향, 즉 오른쪽으로 이동할 수 있다. 이때 현재 칸에 적힌 값만큼 시간이 소모된다. 또한 각 개구리는 최대 한 번 점프할 수 있으며, 점프를 한다면 개구리마다 정해진 하한 값 LL 이상 점프해야 한다.

점프는 XX좌표가 감소하는 방향, 즉 위쪽으로 이동하는 것이며 시간이 소모되지 않는다.

개구리의 초기 위치와 점프 하한 값이 다음과 같은 쿼리 형태로 주어질 때

  • SxS\\_{x} SyS\\_{y} LL : 개구리의 초기 위치가 (Sx,Sy)\left(S\\_{x},S\\_{y}\right)이고 최대 한 번 LL 이상의 양의 정수 값 TT만큼 점프할 수 있을 때, 육지에 도달하는 데 걸리는 최단 시간을 출력하라. (Sx>L)\left(S\\_{x} > L\right)

각 쿼리에 대해서 옳은 답을 차례대로 출력하자.

입력

입력의 첫 줄에 22차원 배열의 크기를 나타내는 NN과 개구리의 수 QQ가 공백으로 구분되어 정수로 주어진다. (3≤N≤500;(3 \le N \le 500; 1≤Q≤200,000)1 \le Q \le 200 \\, 000)

입력의 두 번째 줄부터 NN개의 줄에 배열 AA에 적힌 값이 공백으로 구분되어 정수로 주어진다. i+1i+1번째 줄의 jj번째 수는 배열의 ii번째 행 jj번째 열의 적힌 값 A\\[i\\]\\[j\\]을 나타낸다. (0 \le A\\[i\\]\\[j\\] \le 10\\,000)

입력의 N+2N+2 줄부터 QQ개의 줄에 쿼리가 정수로 주어진다. (0≤L<Sx≤N;(0 \le L < S\\_{x} \le N; 1≤Sy≤N)1 \le S\\_{y} \le N)

출력

QQ개의 줄에 차례대로 쿼리의 정답을 정수로 출력하라.

예제1

  1. 예제 1

    입력
    5 3
    2 6 4 4 4
    3 12 5 4 2
    13 10 2 1 0
    1 1 2 2 3
    3 2 10 6 4
    5 2 1
    3 3 0
    5 3 4
    
    예상 출력
    5
    3
    12