评测记录
#include<bits/stdc++.h>
using namespace std;
long long n,m;
long long k[2010],c[2010];
long long sum=0;
long long dp[int(4e6)+10]={1};
int main() {
cin>>n>>m;
for(long long i=1;i<=n;i++)
cin>>k[i];
for(long long i=1;i<=n;i++)
cin>>c[i],sum+=k[i]*c[i];
for(long long i=1;i<=n;i++)
for(long long j=sum;j>=0;j--)
for(long long l=0;l*c[i]<=j && l<=k[i];l++)
dp[j]=max(dp[j],dp[j-l*c[i]]*l);
for(long long i=1;i<=sum;i++){
if(dp[i]>=m){
cout<<i;
return 0;
}
}
return 0;
}