만드는 중입니다

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

금강산도 식후경

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

요약
정확히 M개의 재료로 만들 수 있는 자극 수준이 구간 [F_1, F_1 + D_K] 안에서 F_1에 D를 더한 값과 정확히 일치하는 F_1의 개수를 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 문자열 매칭, 비트 연산, 수학
정답자
아직 제출이 없습니다

문제

진주 나들이를 온 보선이는 남강유등축제에 갔다. 남강유등축제에는 화려하고 다채로운 조형물과 재미있는 공연이 많지만, '금강산도 식후경'이 좌우명인 보선이는 많은 먹거리가 있는 푸드트럭 존을 찾았다. 그런데 이상하게도 푸드트럭 존이 보이지 않았다. 알고 보니, 남강유등축제에는 푸드트럭 존 대신 쿠킹 존이 있었다.

이 쿠킹 존에서는 재료 NN종류를 판다. 재료마다 자극도 T1,…,TNT_1, \dots, T_N이 정해져 있고, 모든 재료는 요리에 아무리 많이 써도 남을 만큼 충분하다. 이 재료들 중에서 재료의 종류와 각 재료의 개수를 마음대로 정해 음식을 요리해 먹어야 한다. 완성된 음식의 자극도는 사용된 재료들의 자극도의 합이다. 요리를 한 번 할 때마다 일정한 돈을 내야 하지만, 요리 횟수에는 제한이 없다. 다만 하나의 음식에 들어가는 재료의 개수는 정해져 있다. 재료를 너무 많이 넣으면 시간이 오래 걸리고 맛도 떨어지고, 너무 적게 넣으면 맛이 단조롭다. 그래서 하나의 음식에는 재료를 정확히 MM개만 넣어야 한다.

보선이는 KK개의 음식을 먹을 계획이다. 보선이는 미식가라서 먹게 되는 KK개의 음식의 자극도를 중요하게 여긴다. ii번째로 먹는 음식의 자극도를 FiF_i라 하고, Di=Fi−F1D_i = F_i - F_1이라 하자. 식사 계획은 증가하는 수열 D={D1,…,DK}D = \{D_1, \dots, D_K\}로 나타내며, D1D_1은 항상 00이다. 비슷한 자극도의 음식끼리는 헷갈릴 수 있으므로, F1F_1과의 자극도 차이가 D1D_1 이상 DKD_K 이하이면서 식사 계획 DD에 없는 음식은 만들어질 수 없어야 한다.

예를 들어 식사 계획 DD가 {0,2,3}\{0, 2, 3\}이라고 하자. F1F_1을 33으로 고르면 F2F_2는 55, F3F_3은 66이 되어야 한다. 자극도가 44인 음식은 계획에 없고 F1F_1과의 차이가 D1D_1 이상 DKD_K 이하이므로 만들어질 수 없어야 한다. 자극도 44인 음식을 만들 수 있다면 F1F_1을 33으로 고를 수 없다.

보선이가 재료를 정확히 MM개 사용해 만들 수 있는 모든 음식을 만들었을 때, 위 조건을 만족시킬 수 있는 F1F_1로 적합한 자극도의 개수를 구하라.

입력

첫 번째 줄에 재료 종류의 개수 NN, 하나의 음식에 넣는 재료의 개수 MM, 먹을 음식의 개수 KK가 공백으로 구분되어 주어진다. (1≤N,M≤1 000;1≤K≤1 000 000)(1 \le N, M \le 1\,000; 1 \le K \le 1\,000\,000)

두 번째 줄에는 T1,…,TNT_1, \dots, T_N이 공백으로 구분되어 주어진다. TiT_i는 ii번째 재료의 자극도이다. (1≤Ti≤1 000)(1 \le T_i \le 1\,000)

세 번째 줄에는 D1,…,DKD_1, \dots, D_K가 공백으로 구분되어 주어진다. 보선이의 식사 계획을 나타내는 증가하는 수열 DD이다. (0≤Di≤1 000 000;D1=0)(0 \le D_i \le 1\,000\,000; D_1 = 0)

입력에 주어지는 모든 수는 정수이다.

출력

조건을 만족시킬 수 있는 F1F_1로 적합한 자극도의 개수를 첫 번째 줄에 출력한다.

힌트

Python 3 사용자는 PyPy3로 제출하는 것을 권장한다.

예제2

  1. 예제 1

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

    입력
    2 3 3
    1 3
    0 1 2
    
    예상 출력
    0