거스름돈 없음

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

농부 존이 농장에 쓸 물건을 사려고 시장에 왔다. 주머니에는 동전 KK개 (1K161 \le K \le 16)가 있고, 각 동전의 가치는 11 이상 10810^8 이하의 정수다. 존은 정해진 순서대로 NN번 (1N1051 \le N \le 10^5) 물건을 사려고 하며, ii번째 구매에는 cic_i (1ci1041 \le c_i \le 10^4)만큼 돈이 든다.

구매를 이어가는 도중에 존은 언제든 멈춰서 계산할 수 있다. 계산할 때는 동전 하나를 내고, 지난번 계산 이후에 산 물건 값을 한꺼번에 치른다. 물론 그 동전 하나로 그 금액을 전부 낼 수 있어야 한다. 시장 상인에게는 거스름돈이 전혀 없어서, 내야 할 금액보다 가치가 큰 동전을 내면 차액은 그대로 사라진다.

한 번 쓴 동전은 이렇게 손에서 없어지므로, 마지막에 존에게 남는 돈은 한 번도 쓰지 않은 동전의 가치를 모두 더한 값이다. NN번의 구매를 순서대로 모두 마쳤을 때 존에게 남는 돈의 최댓값을 구하라. 모든 구매를 마칠 수 없으면 1-1을 출력한다.

입력

  • 첫째 줄: 정수 KKNN이 주어진다.
  • 둘째 줄부터 1+K1+K번째 줄까지: 각 줄에 존이 가진 동전 하나의 가치가 주어진다.
  • 2+K2+K번째 줄부터 1+N+K1+N+K번째 줄까지: 이 NN개 줄에 존이 사려는 물건의 비용이 순서대로 주어진다.

출력

  • 첫째 줄: 존이 NN번의 구매를 모두 마친 뒤 남길 수 있는 돈의 최댓값을 출력한다. 모든 구매를 마칠 수 없으면 1-1을 출력한다.

힌트

예제에서 존에게는 가치가 1212, 1515, 1010인 동전 세 개가 있고, 비용이 66, 33, 33, 22, 33, 77인 구매를 순서대로 해야 한다. 처음 두 구매는 1010짜리 동전으로 계산하고 (6+3=9106 + 3 = 9 \le 10), 남은 네 구매는 1515짜리 동전으로 계산하면 (3+2+3+7=153 + 2 + 3 + 7 = 15) 1212짜리 동전이 그대로 남는다.