친구들과 즐거운 저녁 식사를 마쳤다. 이제 각자 자신이 내야 할 금액을 지불하려고 한다.
이 식당은 카드 결제를 받지 않아 현금으로만 계산할 수 있고, 거스름돈을 내주지 않는다. 따라서 각 사람은 자신이 내야 할 금액을 정확히 맞추어 내야 한다.
식사에 참여한 사람들끼리는 서로 동전과 지폐를 자유롭게 주고받아(교환하여) 필요한 금액을 맞출 수 있다. 돈은 이렇게 자유롭게 교환할 수 있으므로, 결국 모두가 가진 현금을 모아 전체 식사비의 합을 한 푼의 거스름돈도 없이 정확히 지불할 수 있는지가 관건이다.
각 사람이 처음에 가지고 있는 현금이 주어질 때, 모두가 내야 할 금액의 합을 정확히 지불할 수 있는지 판단하라.
입력은 여러 개의 테스트 케이스로 이루어진다.
각 테스트 케이스의 첫째 줄에는 식사를 한 사람의 수 N이 주어진다. 이어지는 N개의 줄에는 각 사람의 정보가 다음과 같은 순서로 주어진다.
x c1 c5 c10 c25 c100 c500 c1000 c2000 c5000 c10000
여기서 x는 그 사람이 내야 하는 금액이고, cv는 그 사람이 가진 액면가 v짜리 동전 또는 지폐의 개수이다. 화폐의 액면가는 1,5,10,25,100,500,1000,2000,5000,10000의 10가지이다.
입력의 마지막 줄에는 0 하나만 주어지며, 이는 입력의 끝을 나타낸다.
모든 사람은 항상 자신의 음식값을 낼 수 있을 만큼의 현금을 가지고 있으며, 각 사람이 가진 현금의 총액은 부호 있는 32비트 정수 범위 안에 있다. 또한 N≤100000이다.
각 테스트 케이스마다 Case k: (여기서 k는 1부터 시작하는 케이스 번호)를 출력하고, 한 칸 띄운 뒤 모두가 정확히 지불할 수 있으면 YES를, 그렇지 않으면 NO를 출력한다.