모든 시약을 용기에 완전히 나눠 담으면서 각 용기의 부피 범위와 특정 시약의 최소 비율 조건을 동시에 만족시킬 수 있는지 판정한다.
어려움8그리디수학구현이분 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB피터는 화학 선생님에게 새 과제를 받았다. 여러 시약을 용기에 나누어 담는 일이다. 용기는 n개, 시약은 m개 있다.
i번 용기에는 제약이 두 가지 있다. 담기는 액체의 총 부피는 mini 밀리리터 이상 maxi 밀리리터 이하여야 하고, ci번 시약이 그 용기에 담긴 액체 부피의 pi 퍼센트 이상을 차지해야 한다.
피터가 가진 i번 시약은 vi 밀리리터다. 시약은 모두 남김없이 용기에 부어야 하고, 각 용기에는 시약이 하나 이상 담겨야 한다. 붓는 양은 정수가 아니어도 된다. 화학 반응은 일어나지 않고 시약의 부피도 변하지 않는다.
모든 제약을 만족하도록 부을 수 있는지 판정하라.
예를 들어 용기가 3개, 시약이 4개이고, 용기의 제약이 차례로 (min,max,c,p)=(5,8,1,60),(4,6,3,80),(3,4,4,70)이며 가진 시약의 양이 3,4,4,3이라고 하자. 1번 용기에 1번 시약 3밀리리터와 2번 시약 2밀리리터를, 2번 용기에 3번 시약 4밀리리터와 2번 시약 1밀리리터를, 3번 용기에 4번 시약 3밀리리터와 2번 시약 1밀리리터를 부으면 된다. 각 용기의 부피는 5, 5, 4밀리리터로 범위 안에 들어가고, 비율도 3/5=60%, 4/5=80%, 3/4=75%≥70%로 조건을 만족한다. 시약도 남김없이 사용했으므로 이 경우의 답은 YES다.
입력은 여러 개의 테스트 케이스로 이루어진다. 첫 줄에 테스트 케이스의 개수 t가 주어진다 (1≤t≤100).
각 테스트 케이스의 첫 줄에는 용기의 개수 n과 시약의 개수 m이 주어진다 (1≤n,m≤105).
이어지는 n개 줄 중 i번째 줄에는 네 정수 mini, maxi, ci, pi가 주어진다 (1≤mini≤maxi≤105, 1≤ci≤m, 1≤pi≤100). 차례대로 i번 용기에 담기는 액체의 최소 부피, 최대 부피, 비율 조건이 걸린 시약의 번호, 그 시약이 차지해야 하는 최소 비율이다.
그다음 줄에는 정수 v1,v2,…,vm이 주어진다 (1≤vi≤105).
한 입력에 들어 있는 모든 테스트 케이스의 n의 합과 m의 합은 각각 105 이하다.
각 테스트 케이스마다 한 줄씩 답을 출력한다. 모든 제약을 만족하도록 시약을 나누어 담는 방법이 있으면 YES를, 없으면 NO를 출력한다. 두 문자열 모두 대문자로 출력한다.