#include <iostream> #define MAXN 105 using namespace std; struct node { int a; int c; }; node _node[MAXN]; int sum[100001]; bool mark[100001]; int main() { //freopen("acm.acm","r",stdin); int i; int j; int n; int m; while(cin>>n>>m) { if(n == 0 && m == 0) { break; } for(i = 0; i < n; ++ i) { cin>>_node[i].a; } for(i = 0; i < n; ++ i) { cin>>_node[i].c; } int ans = 0; memset(mark,false,sizeof(mark)); mark[0] = true; for(i = 0; i < n; ++ i) { memset(sum,0,sizeof(sum)); for(j = _node[i].a; j <= m; ++ j) { if(!mark[j] && mark[j-_node[i].a] && sum[j-_node[i].a] < _node[i].c) { mark[j] = true; sum[j] = sum[j-_node[i].a] + 1; ++ ans; } } } cout<<ans<<endl; } }
关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。
技术网站地址: vmfor.com