제목 설명
샤오밍은 곧 학교를 시작하려고하는데 샤오밍의 짐이 너무 많아서 혼자서 학교에 다 가져갈 수 없어서 샤오밍은 짐을 학교에 보내려고한다. 현재 Xiao Ming은 총 N 개의 수하물을 가지고 있으며 각 수하물의 무게는 Wi입니다. 총 M 개의 익스프레스 회사가 있습니다. Xiao Ming은 특송을 보낼 회사를 최대 1 개 선택하고 i-th 특송 회사는 총 중량이 ai이고 요금이 ci 인 수하물까지 우편을 보낼 수 있습니다. 샤오밍은 총 무게가 D 인 짐을 기껏해야 휴대 할 수 있으며 비용이 최대한 적기를 바랍니다. 샤오밍은 모든 짐을 학교에 가져갈 수 있습니까?
입력 데이터
입력 데이터의 첫 번째 줄은 테스트 데이터 그룹의 수를 나타내는 양의 정수 T입니다. 다음은 테스트 데이터의 T 그룹입니다. 각 테스트 데이터 그룹의 첫 번째 줄은 세 개의 정수 N, M 및 D (1 ≤ T ≤ 100, 1 ≤ N, M, D ≤ 1000)입니다. 다음 행은 N 개의 수하물 무게를 나타내는 N 개의 정수입니다. 다음 M 행에서 각 행의 공백으로 구분 된 두 개의 정수 ai 및 ci는 i-th 특급 회사의 최대 우편물의 무게와 비용을 나타냅니다 (0 ≤ wi ≤ 100, 0 ≤ ai ≤ 100000, 0 ≤ ci ≤ 1000).
출력 데이터
각 입력 데이터 그룹에 대해 "Case #id : ans"결과 행을 출력합니다. 이는 id 그룹 데이터의 결과가 ans이고 id가 1부터 시작 함을 의미합니다. Xiao Ming이 모든 짐을 학교에 가져갈 수없는 경우 ans는 "QAQ"이고, 그렇지 않으면 ans는 Xiao Ming의 최소 비용입니다.
샘플 입력
1
2 10
5 6
5 10
6 5
샘플 출력
사례 1 : 5
경험 :이 질문은 비교적 간단합니다. 여러 회사를 선택하여 특송을 보낼 수 있다면 최소 비용에 대해 생각할 수 있습니다. . ||
T = int(input())
for t in range(T):
N,M,D = list(map(int, input().split()))
ns = list(map(int, input().split())) ds = 0
for i in ns:
ds += i
ms = []
for i in range(M):
ms.append(list(map(int, input().split())))
if ds<=D:
print('Case #{}: {}'.format(t+1,'0'))
else:
ds = ds-D
isOK = False
temp = []
for i in range(M):
if ms[i][0]>=ds:
isOK = True
temp.append(ms[i][1])
if isOK==False:
print('Case #{}: {}'.format(t+1,'QAQ'))
else:
temp.sort()
print('Case #{}: {}'.format(t+1,temp[0]))