아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

눈길 부츠

시간 제한2초메모리 제한512 MB

요약
부츠가 쌓인 배낭에서 눈 깊이와 보폭 제한을 고려해 1번 타일에서 N번 타일까지 이동할 때 버려야 하는 부츠 쌍의 최소 개수를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 배열, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

농장에 겨울이 왔고 눈이 쌓였다. 농가에서 헛간까지 이어지는 길에는 타일 NN개가 11번부터 NN번까지 놓여 있고, ii번 타일에는 눈이 fif_i피트만큼 쌓여 있다.

농부 존은 11번 타일에서 출발해 젖소를 깨우러 NN번 타일까지 가야 한다. 11번 타일은 농가 지붕 아래에, NN번 타일은 헛간 지붕 아래에 있어서 두 타일에는 눈이 없다. 나머지 타일을 밟으려면 부츠를 신어야 한다.

방한 배낭에는 부츠 BB켤레가 11번부터 BB번까지 들어 있다. 어떤 부츠는 더 튼튼하고 어떤 부츠는 더 날쌔다. ii번 부츠를 신으면 깊이가 최대 sis_i피트인 눈까지 밟을 수 있고, 한 걸음에 최대 did_i칸까지 앞으로 갈 수 있다.

부츠는 차곡차곡 쌓여 있어서 맨 위 한 켤레에만 손이 닿는다. 존은 언제든지 맨 위 부츠를 신을 수 있고, 이때 신고 있던 부츠는 버린다. 맨 위 부츠를 신지 않고 그대로 버려서 그 아래 부츠를 꺼낼 수도 있다.

부츠는 타일 위에 서 있을 때만 갈아 신는다. 그 타일에 눈이 ff피트 쌓여 있다면 벗는 부츠와 새로 신는 부츠 모두 깊이 ff피트 이상을 견뎌야 한다. 한 번도 신지 않고 버리는 부츠는 이 조건을 지키지 않아도 된다.

처음에 존은 부츠를 신고 있지 않다. 헛간에 도착하려면 부츠를 최소 몇 켤레 버려야 하는지 구하시오.

입력

첫째 줄에 정수 NN과 BB가 공백으로 구분되어 주어진다 (2≤N,B≤2502 \leq N, B \leq 250).

둘째 줄에 정수 NN개가 공백으로 구분되어 주어진다. ii번째 정수는 ii번 타일에 쌓인 눈의 깊이 fif_i이다 (0≤fi≤1090 \leq f_i \leq 10^9). f1=fN=0f_1 = f_N = 0임이 보장된다.

다음 BB개 줄에는 각각 정수 두 개가 공백으로 구분되어 주어진다. i+2i+2번째 줄의 첫 번째 정수는 ii번 부츠가 밟을 수 있는 눈의 최대 깊이 sis_i이고, 두 번째 정수는 ii번 부츠의 최대 보폭 did_i이다 (0≤si≤1090 \leq s_i \leq 10^9, 1≤di≤N−11 \leq d_i \leq N-1).

부츠는 배낭 위쪽부터 아래쪽 순서로 주어지므로 11번 부츠가 맨 위에 있다.

출력

버려야 하는 부츠의 최소 켤레 수를 정수 하나로 출력한다. 헛간까지 갈 수 있음이 보장된다.

예제1

  1. 예제 1

    입력
    10 4
    0 2 8 3 6 7 5 1 4 0
    2 3
    4 2
    3 4
    7 1
    
    예상 출력
    2