#include
<
iostream
>
#include
<
stdio.h
>
#include
<
cstring
>
using
namespace
std;
int
a[
101
],c[
101
];
int
num[
100001
],f[
100001
];
int
main(){
int
n,m;
while
(scanf(
"
%d %d
"
,
&
n,
&
m)
!=
EOF){
if
(n
==
0
&&
m
==
0
)
break
;
int
sum
=
0
;
for
(
int
i
=
1
;i
<=
n;i
++
)scanf(
"
%d
"
,
&
a[i]);
for
(
int
i
=
1
;i
<=
n;i
++
)scanf(
"
%d
"
,
&
c[i]);memset(f,
0
,
sizeof
(f));f[
0
]
=
1
;
for
(
int
i
=
1
;i
<=
n;i
++
){memset(num,
0
,
sizeof
(num));
for
(
int
j
=
a[i];j
<=
m;j
++
){
if
(
!
f[j]
&&
f[j
-
a[i]]
&&
num[j
-
a[i]]
<
c[i]){num[j]
=
num[j
-
a[i]]
+
1
;sum
++
;f[j]
=
1
;}}}printf(
"
%d\n
"
,sum);}
return
0
;}
转载于:https://www.cnblogs.com/cyiner/archive/2011/05/16/2048250.html
转载请注明原文地址: https://mac.8miu.com/read-58555.html