1 #include
2 #include
3 #include
4 #include
5 #include21 {
22 printf("i=%d\n",i);
23 for(int j=0;j<=K;j++)
24 {
25 if(dp[j]>=0)//已经拼好了说明ai可以剩下mi个
26 dp[j]=m[i];
27 else if(j0)//j28 //dp[j-ai]如果不可分或者=0下面就不能-1
29 dp[j]=-1;
30 else//如果dp[j-ai]可以分,那么dp[j]=dp[j-ai]-1;
31 dp[j]=dp[j-a[i]]-1;
32 // printf(" dp[%d]=%d\n",j,dp[j]);
33 }
34 }
35 if(dp[K]>=0)
36 printf("Yes\n");
37 else
38 printf("No\n");
39 }
40 int main()
41 {
42 //n=3
43 //a=3 5 8
44 //m=3 2 2
45 //k=17
46 scanf("%d",&n);
47 for(int i=0;i)
48 scanf("%d",&a[i]);
49 for(int i=0;i)
50 scanf("%d",&m[i]);
51 scanf("%d",&K);
52 solve();
53 return 0;
54 }