// 2009模擬地区予選 B : For the Piece #include #include #include using namespace std; int main(){ int n, d; static int size[100]; static int pot[100][10001]; pair sum[100]; while(cin >> n >> d, n){ int lest = 0; for(int i=0;i> size[i]; lest += size[i]; int cur = 0; pot[i][0] = 0; for(int j=1;j<=size[i];j++){ int add; cin >> add; cur += add; pot[i][j] = cur; } } bool flag = true; while(flag){ for(int i=0;i d) continue; // ミサイルを捨てる else { size[i]--; lest--; flag = lest!=0; break; } // 戦力最大でない場合は,戦力最大の国と比較 } else { int idx = sum[n-1].second; if(abs(pot[idx][size[idx]]-pot[i][size[i]-1]) > d) continue; else { size[i]--; lest--; flag = lest!=0; break; } } } if(i==n) flag = false; } cout << (lest==0?"Yes":"No") << endl; } }