#include<bits/stdc++.h>
using namespace std;
#define SF scanf
#define PF printf
int a[1000005], p[1000005];
bool dp[1000005];
int main() {
int n, m, len = 0;
SF("%d%d", &n, &m);
for(int i = 1; i <= n; i++) {
int u, v;
SF("%d%d", &u, &v);
for(int k = 1; k <= v; k <<= 1) {
a[++len] = u * k;
v -= k;
}
if(v != 0) a[++len] = u * v;
}
int c = 0;
for(int i = 1; i <= m; i++) {
SF("%d", &p[i]);
c = max(c, p[i]);
}
dp[0] = 1;
for(int i = 1; i <= len; i++) {
for(int j = c; j >= 0; j--) dp[j] |= dp[j - a[i]];
}
for(int i = 1; i <= m; i++) {
if(dp[p[i]]) PF("Yes\n");
else PF("No\n");
}
return 0;
}
下载数据对照后好像没问题?