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;
        }
    }
}