평화를 위하여
시간 제한8초메모리 제한512 MB
n개 국가가 오래된 미사일부터 차례로 폐기할 때, 남은 전력량의 최댓값과 최솟값 차이가 항상 d 이하가 되도록 모두 폐기할 수 있는지 판정한다.
문제
지구에서 아주 먼 어느 세계의 이야기다. 이 세계의 땅은 여러 제국이 다스리는 나라로 나뉘어 있고, 나라들은 오랫동안 군비 경쟁을 이어 왔다.
경쟁의 중심은 미사일 생산이다. 그런데도 여러 해 동안 어느 나라도 전쟁을 일으키지 않았다. 전쟁을 벌일 수 없는 이유가 있다. 세계 전체를 파괴하고도 남을 만큼 미사일이 많아서, 나라 사이에 전쟁이 한 번 시작되면 어느 나라도 살아남지 못한다.
미사일은 사람들에게 공포만 남겼다. 경쟁은 각 나라에 큰 재정 부담과 심리적 부담을 안겼다. 국민도 지쳤고 군도 지쳤으며 제국마저 지쳤다. 이제 아무도 미사일 생산을 계속하고 싶어 하지 않는다.
그래서 모든 나라의 제국과 외교관이 미사일 포기와 추가 생산 중단을 놓고 여러 차례 회담을 열었다. 나라마다 사정이 달라 회담은 쉽지 않았지만, 결국 다음 두 가지를 담은 조약에 합의했다.
- 각 나라는 정해진 날짜까지 보유한 미사일을 모두 폐기한다.
- 어느 두 나라의 전쟁 잠재력 차이도 를 넘지 않는다.
두 번째 항목을 자세히 설명한다. 미사일마다 목표를 얼마나 파괴할 수 있는지 나타내는 위력이 있다. 한 나라의 전쟁 잠재력은 그 나라가 아직 보유한 미사일 위력의 합이다. 조약은 모든 나라의 전쟁 잠재력 가운데 최댓값과 최솟값의 차이가 항상 이하로 유지되기를 요구한다.
미사일은 한 번에 한 발씩 폐기하고, 한 발을 폐기할 때마다 조약의 조건을 확인한다. 각 나라는 생산한 순서대로, 즉 가장 오래된 미사일부터 가장 새로운 미사일 순으로만 폐기한다. 위력이 아주 큰 미사일도 있어서, 그런 미사일을 폐기하면 잠재력의 균형이 깨질 수 있다.
조약을 어기지 않으면서 모든 나라가 미사일을 전부 폐기할 수 있는지 판정하는 프로그램을 작성하라.
입력
입력은 여러 개의 데이터 세트로 이루어진다. 각 데이터 세트의 형식은 다음과 같다.
n d
m1 c1,1 ... c1,m1
...
mn cn,1 ... cn,mn
첫 줄에는 나라의 수 과 허용되는 잠재력 차이 가 주어진다. 두 값 모두 양의 정수이며 , 이다. 이어서 개의 줄이 주어진다. 번째 줄은 번 나라가 보유한 미사일 개수 로 시작한다. 는 음이 아닌 정수이고, 그 뒤에 개의 양의 정수가 온다. 그중 번째 정수 는 번 나라에서 번째로 새로운 미사일의 위력이며 이다. 한 줄의 정수는 공백 하나로 구분된다. 각 나라는 주어진 순서의 역순으로 미사일을 폐기한다.
한 데이터 세트의 미사일 개수 합은 10000 이하다. 또 모든 데이터 세트에서 처음 상태의 최대 잠재력과 최소 잠재력의 차이는 이하라고 가정해도 된다.
입력의 끝은 0이 두 개 적힌 줄로 표시한다. 이 줄은 처리하지 않는다.
출력
각 데이터 세트마다 한 줄을 출력한다. 조약을 지키면서 모든 나라가 미사일을 전부 폐기할 수 있으면 Yes를, 그렇지 않으면 No를 출력한다.
채점은 대문자와 소문자를 구별한다. 여분의 공백이나 문자는 허용하지 않는다.