Air Old Zeeland(줄여서 Air OZ)는 고객이 적립한 마일리지 포인트를 상품으로 교환할 수 있는 제도를 새로 도입했다. 아직 초기 단계이므로 Air OZ는 엄선한 소수의 상품만으로 시장 반응을 살펴보고 있다. 그런데 공급 업체들이 수요를 제때 맞추지 못하는 경우가 많아, Air OZ는 각 상품마다 교환에 필요한 포인트(정가)와 배송까지 걸리는 일수를 함께 기록하기로 했다. 이를 통해 불만을 가진 고객이 얼마나 되는지 파악하려는 것이다.
입력은 여러 개의 시나리오로 이루어진다.
각 시나리오의 첫 줄에는 이번에 제공되는 상품의 개수 $N$ ($0 < N \le 50$)이 주어진다. 첫 줄이 $0$인 시나리오는 입력의 끝을 의미하며 처리하지 않는다.
이어지는 $N$개의 줄에는 각 상품의 정보가 한 줄에 하나씩 주어진다. 한 줄은 상품 이름, 교환에 필요한 포인트, 배송까지 걸리는 일수로 이루어지며 각 항목은 하나의 공백으로 구분된다. 상품 이름은 최대 20자이고 공백을 포함하지 않는다. 어떤 상품도 1000 포인트를 넘지 않으며, 배송 지연은 100일을 넘지 않는다.
상품 목록 다음 줄에는 이 시나리오에서 처리할 고객 수 $C$ ($0 < C \le 500$)가 주어진다. 각 고객마다 고객 번호, 구매하려는 상품 개수 $P$, 기다릴 수 있는 최대 일수 $M$ ($0 < P \le N$, $0 < M < 100$)이 하나의 공백으로 구분되어 한 줄에 주어진다. 그 뒤로 고객이 주문하려는 상품 이름이 한 줄에 하나씩 $P$개 주어진다.
각 고객마다 고객 번호와 실제로 구매한 상품들의 합계 금액을 공백 하나로 구분하여 한 줄에 출력한다. 상품은 배송 일수가 고객이 기다릴 수 있는 최대 일수 $M$ 이하일 때만 구매되며, 그보다 오래 걸리는 상품은 구매되지 않고 해당 고객은 불만 고객이 된다. 고객이 원하던 상품 중 하나라도 구매하지 못했다면, 금액 뒤에 공백 하나와 별표(*)를 덧붙인다. 별표가 없을 때는 뒤에 공백을 남기지 않는다.
한 시나리오의 모든 고객을 출력한 뒤에는 Number of discontented customers is: 라는 문구와 공백 하나, 그리고 그 시나리오에서 발생한 불만 고객 수(즉 출력된 별표의 개수)를 한 줄에 출력한다.
예제에서 고객 1001이 원하는 두 상품은 모두 고객이 허용하는 기간 안에 배송될 수 있으므로 둘 다 구매된다.
고객 1860이 원하는 상품은 제때 배송될 수 없으므로 아무것도 구매하지 못하고 불만 고객이 된다.
고객 1025는 두 상품 중 하나(255 포인트짜리 iPodNano)는 기간 안에 받을 수 있지만 다른 하나(향수)는 받을 수 없어, 합계는 255가 되고 별표가 출력된다.
결국 구매를 완료하지 못한 고객은 2명이다.