Submission
Status:
[PPPPPPPPPPPPPPP]
Score: 100
User: MiyaZaki1072
Problemset: laracroft
Language: cpp
Time: 0.005 second
Submitted On: 2025-04-12 21:15:41
#include <bits/stdc++.h>
using namespace std;
#define int long long
int dp[2][2020],v[505],w[505];
signed main(){
cin.tie(0)->sync_with_stdio(0);
int n,m;cin>>n>>m;
for(int i=1;i<=n;i++)cin>>v[i];
for(int i=1;i<=n;i++)cin>>w[i];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
int now = i%2,prev=1-now;
dp[now][j] = dp[prev][j];
if(j-w[i] < 0)continue;
if(dp[prev][j-w[i]]+v[i] > dp[now][j]){
dp[now][j] = dp[prev][j-w[i]]+v[i];
}
}
}
int mx = dp[n%2][m];
if(mx==0){
cout<<"0 0";
return 0;
}
for(int i=1;i<=m;i++){
if(dp[n%2][i] == mx){
cout<<mx<<" "<<i;
return 0;
}
}
}